Package org.apache.harmony.pack200

Examples of org.apache.harmony.pack200.Segment$SegmentAnnotationVisitor


    public void addSegment(short startCode, short endCode, char[] map) {
        if (map.length != (endCode - startCode) + 1) {
            throw new IllegalArgumentException("Wrong number of entries in map");
        }
       
        Segment s = new Segment(startCode, endCode, true);
        // make sure we remove any old entries
        this.segments.remove(s);
        this.segments.put(s, map);
    }
View Full Code Here


   
    /**
     * Add a segment with an idDelta
     */
    public void addSegment(short startCode, short endCode, short idDelta) {
        Segment s = new Segment(startCode, endCode, false);
        // make sure we remove any old entries
        this.segments.remove(s);
        this.segments.put(s, Integer.valueOf(idDelta));
    }
View Full Code Here

   
    /**
     * Remove a segment
     */
    public void removeSegment(short startCode, short endCode) {
        Segment s = new Segment(startCode, endCode, true);
        this.segments.remove(s);
    }
View Full Code Here

        // add the size of each segment header
        size += this.segments.size() * 8;
       
        // add the total number of mappings times the size of a mapping
        for (Iterator i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = (Segment) i.next();
           
            // see if there's a map
            if (s.hasMap) {
                // if there is, add its size
                char[] map = (char[]) this.segments.get(s);
View Full Code Here

     */
    @Override
  public char map(char src) {
        // find first segment with endcode > src
        for (Iterator i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = (Segment) i.next();
           
            if (s.endCode >= src) {
                // are we within range?
                if (s.startCode <= src) {
                    if (s.hasMap) {
View Full Code Here

     */
    @Override
  public char reverseMap(short glyphID) {
        // look at each segment
        for (Iterator i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = (Segment) i.next();
           
            // see if we have a map or a delta
            if (s.hasMap) {
                char[] map = (char[]) this.segments.get(s);
               
View Full Code Here

        buf.putShort(getEntrySelector());
        buf.putShort(getRangeShift());
       
        // write the endCodes
        for (Iterator<Segment> i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = i.next();
            buf.putShort((short) s.endCode);
        }
       
        // write the pad
        buf.putShort((short) 0);
       
        // write the startCodes
        for (Iterator<Segment> i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = i.next();
            buf.putShort((short) s.startCode);
        }
       
        // write the idDeltas for segments using deltas
        for (Iterator<Segment> i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = i.next();
           
            if (!s.hasMap) {
                Integer idDelta = (Integer) this.segments.get(s);
                buf.putShort(idDelta.shortValue());
            } else {
                buf.putShort((short) 0);
            }
        }
       
        // the start of the glyph array
        int glyphArrayOffset = 16 + (8 * getSegmentCount());
       
        // write the idRangeOffsets and maps for segments using maps
        for (Iterator<Segment> i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = i.next();
           
            if (s.hasMap) {
                // first set the offset, which is the number of bytes from the
                // current position to the current offset
                buf.putShort((short) (glyphArrayOffset - buf.position()));
View Full Code Here

        buf.append(indent + "SearchRange  : " + getSearchRange() + "\n");
        buf.append(indent + "EntrySelector: " + getEntrySelector() + "\n");
        buf.append(indent + "RangeShift   : " + getRangeShift() + "\n");
       
        for (Iterator<Segment> i = this.segments.keySet().iterator(); i.hasNext();) {
            Segment s = i.next();
           
            buf.append(indent);
            buf.append("Segment: " + Integer.toHexString(s.startCode));
            buf.append("-" + Integer.toHexString(s.endCode) + " ");
            buf.append("hasMap: " + s.hasMap + " ");
View Full Code Here

    public int compareTo(Object o) {
            if (!(o instanceof Segment)) {
                return -1;
            }
           
            Segment s = (Segment) o;
       
            // if regions overlap at all, declare the segments equal,
            // to avoid overlap in the segment list
            if (((s.endCode >= this.startCode) && (s.endCode <= this.endCode)) ||
                ((s.startCode >= this.startCode) && (s.startCode <= this.endCode))) {
View Full Code Here

    public void testHelloWorld() throws IOException, Pack200Exception, URISyntaxException {
        in = new JarFile(new File(Archive.class.getResource(
                "/org/apache/harmony/pack200/tests/hw.jar").toURI()));
        file = File.createTempFile("helloworld", ".pack.gz");
        out = new FileOutputStream(file);
        new Archive(in, out, null).pack();
        in.close();
        out.close();

        // now unpack
        InputStream in2 = new FileInputStream(file);
View Full Code Here

TOP

Related Classes of org.apache.harmony.pack200.Segment$SegmentAnnotationVisitor

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.