this.loop = new HatchBoundaryLoop(); this.hatch.addBoundaryLoop(loop);
case GROUPCODE_BOUNDAYY_LOOP_TYPE:
    public void parseGroup(int groupCode, DXFValue value) {        switch (groupCode) {        case GROUPCODE_BOUNDARY_LOOP_COUNT:            break;        case GROUPCODE_BOUNDARY_EDGE_COUNT:            break;        case GROUPCODE_BOUNDARY_EDGE_TYPE:            if (boundaryHandler != null) {                // get the last parsed entity                boundaryHandler.endDXFEntity();                loop.addBoundaryEdge(boundaryHandler.getDXFEntity());            }            if (!this.polylineBoundary) {                switch (value.getIntegerValue()) {                case 1:                    boundaryHandler = (DXFEntityHandler) boundaryHandlers.get(DXFConstants.ENTITY_TYPE_LINE);                    boundaryHandler.startDXFEntity();                    break;                case 2:                    boundaryHandler = (DXFEntityHandler) boundaryHandlers.get(DXFConstants.ENTITY_TYPE_ARC);                    boundaryHandler.startDXFEntity();                    break;                case 3:                    boundaryHandler = (DXFEntityHandler) boundaryHandlers.get(DXFConstants.ENTITY_TYPE_ELLIPSE);                    boundaryHandler.startDXFEntity();                    break;                case 4:                    boundaryHandler = (DXFEntityHandler) boundaryHandlers.get(DXFConstants.ENTITY_TYPE_SPLINE);                    boundaryHandler.startDXFEntity();                    break;                }            }            break;        case GROUPCODE_BOUNDAYY_LOOP_TYPE:            // finish up last parsing            if (this.polylineBoundary) {                // add the last parsed polyline                this.loop.addBoundaryEdge(polyline);            }            // a new loop starts            this.loop = new HatchBoundaryLoop();            this.hatch.addBoundaryLoop(loop);            //set the flags            this.polylineBoundary = false;            this.parseBoundary = true;            if ((value.getIntegerValue() & 2) == 2) {                this.polylineBoundary = true;                this.polyline = new DXFPolyline();                this.polyline.setDXFDocument(this.doc);            }            if ((value.getIntegerValue() & 1) == 1) {                // from external hatch            }            if ((value.getIntegerValue() & 4) == 4) {                // from derivated hatch            }            if ((value.getIntegerValue() & 16) == 16) {                // different from the DXF-Specs                // if bit is set the loop is not                this.loop.setOutermost(false);            }            break;        case GROUPCODE_NAME:            this.hatch.setName(value.getValue());            break;        case GROUPCODE_START_X:            if (parseBoundary) {                parseBoundary(groupCode, value);            } else {                this.hatch.getElevationPoint().setX(value.getDoubleValue());            }            break;        case GROUPCODE_START_Y:            if (parseBoundary) {                parseBoundary(groupCode, value);            } else {                this.hatch.getElevationPoint().setY(value.getDoubleValue());            }            break;        case GROUPCODE_START_Z:            if (parseBoundary) {                parseBoundary(groupCode, value);            } else {                this.hatch.getElevationPoint().setZ(value.getDoubleValue());            }            break;        case GROUPCODE_HATCH_STYLE:            this.parseBoundary = false;            // This should be the end of a boundary entity            break;        case GROUPCODE_PATTERN_LINE_ANGLE:            this.parseBoundary = false;            this.linePattern = new HatchLinePattern();            this.pattern.addLinePattern(this.linePattern);            // set the previus parsed line data            if (this.linePattern != null) {                this.linePattern.setPattern(this.parameters);            }            this.linePattern.setRotationAngle(value.getDoubleValue());            this.count = 0;            break;        case GROUPCODE_PATTERN_BASE_X:            this.linePattern.setBaseX(value.getDoubleValue());            break;        case GROUPCODE_PATTERN_BASE_Y:            this.linePattern.setBaseY(value.getDoubleValue());            break;        case GROUPCODE_PATTERN_OFFSET_X:            this.linePattern.setOffsetX(value.getDoubleValue());            break;        case GROUPCODE_PATTERN_OFFSET_Y:            this.linePattern.setOffsetY(value.getDoubleValue());            break;        case GROUPCODE_PATTERN_LINE_COUNT:            this.parameters = new double[value.getIntegerValue()];            break;        case GROUPCODE_PATTERN_LINE_TYPE_DATA:            this.parameters[this.count] = value.getDoubleValue();            this.count++;            break;        default:            if (parseBoundary) {                parseBoundary(groupCode, value);            } else {                super.parseCommonProperty(groupCode, value, this.hatch);            }        }    }