Projects >> cismap-commons >>3a66fb3072f460a96e14ab3e5230bd747131a460

Chunk
Conflicting content
                @Override
                protected Void doInBackground() throws Exception {
<<<<<<< HEAD
                    if ((tp != null) && (tp.getLastPathComponent() instanceof RetrievalServiceLayer)) {
                        ((MapService)tp.getLastPathComponent()).setBoundingBox(mapC.getCurrentBoundingBox());
                        ((RetrievalServiceLayer)tp.getLastPathComponent()).retrieve(true);
                    } else if ((tp != null)
                                && (tp.getParentPath().getLastPathComponent() instanceof RetrievalServiceLayer)) {
                        ((RetrievalServiceLayer)tp.getParentPath().getLastPathComponent()).retrieve(true);
=======
                    if (tps != null) {
                        for (final TreePath tp : tps) {
                            if ((tp != null) && (tp.getLastPathComponent() instanceof RetrievalServiceLayer)) {
                                ((MapService)tp.getLastPathComponent()).setBoundingBox(
                                    mapC.getCurrentBoundingBoxFromCamera());
                                ((RetrievalServiceLayer)tp.getLastPathComponent()).retrieve(true);
                            } else if ((tp != null)
                                        && (tp.getParentPath().getLastPathComponent() instanceof RetrievalServiceLayer)) {
                                ((RetrievalServiceLayer)tp.getParentPath().getLastPathComponent()).retrieve(true);
                            }
                        }
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
                    }

                    return null;
Solution content
                @Override
                protected Void doInBackground() throws Exception {
                    if (tps != null) {
                        for (final TreePath tp : tps) {
                            if ((tp != null) && (tp.getLastPathComponent() instanceof RetrievalServiceLayer)) {
                                ((MapService)tp.getLastPathComponent()).setBoundingBox(
                                    mapC.getCurrentBoundingBoxFromCamera());
                                ((RetrievalServiceLayer)tp.getLastPathComponent()).retrieve(true);
                            } else if ((tp != null)
                                        && (tp.getParentPath().getLastPathComponent() instanceof RetrievalServiceLayer)) {
                                ((RetrievalServiceLayer)tp.getParentPath().getLastPathComponent()).retrieve(true);
                            }
                        }
                    }
                    return null;
File
LayerWidget.java
Developer's decision
Combination
Kind of conflict
For statement
If statement
Method invocation
Chunk
Conflicting content
    //~ Static fields/initializers ---------------------------------------------

<<<<<<< HEAD
=======
    private static final String DIALOG_TEXT = org.openide.util.NbBundle.getMessage(
            PFeature.class,
            "PFeature.DIALOG_TEXT");  // NOI18N
    private static final String DIALOG_TITLE = org.openide.util.NbBundle.getMessage(
            PFeature.class,
            "PFeature.DIALOG_TITLE"); // NOI18N
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
    private static final Color TRANSPARENT = new Color(255, 255, 255, 0);
    private static final Stroke FIXED_WIDTH_STROKE = new FixedWidthStroke();
Solution content
    //~ Static fields/initializers ---------------------------------------------

    private static final Color TRANSPARENT = new Color(255, 255, 255, 0);
    private static final Stroke FIXED_WIDTH_STROKE = new FixedWidthStroke();
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Attribute
Comment
Method invocation
Chunk
Conflicting content
            } else if (geom instanceof MultiPolygon) {
//                MultiPolygon mp = (MultiPolygon) geom;
            } else if ((geom instanceof Point) || (geom instanceof MultiPoint)) {
<<<<<<< HEAD
                addAnnotation(entityRingCoordArr[0][0][0].x, entityRingCoordArr[0][0][0].y);
=======
                addAnnotation(coordArr[0].x, coordArr[0].y);
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
            }
            if (pi != null) {
                sweetPureX = pi.getSweetSpotX();
Solution content
            } else if (geom instanceof MultiPolygon) {
//                MultiPolygon mp = (MultiPolygon) geom;
            } else if ((geom instanceof Point) || (geom instanceof MultiPoint)) {
                addAnnotation(entityRingCoordArr[0][0][0].x, entityRingCoordArr[0][0][0].y);
            }
            if (pi != null) {
                sweetPureX = pi.getSweetSpotX();
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Method invocation
Chunk
Conflicting content
    }

    /**
<<<<<<< HEAD
     * Dupliziert eine Koordinate.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position der zu duplizierenden Koordinate
     */
    public void duplicateCoordinate(final int entityPosition, final int ringPosition, final int coordPosition) {
        final Coordinate[] origCoordArr = entityRingCoordArr[entityPosition][ringPosition];
        final float[] origXArr = entityRingXArr[entityPosition][ringPosition];
        final float[] origYArr = entityRingYArr[entityPosition][ringPosition];
        final Geometry geometry = getFeature().getGeometry();

        if (((geometry instanceof Polygon) && (origCoordArr != null)
                        && ((origCoordArr.length - 1) > coordPosition))
                    || ((geometry instanceof LineString) && (origCoordArr != null)
                        && (origCoordArr.length > coordPosition)
                        && (origCoordArr.length > 2))) {
            final Coordinate[] newCoordArr = new Coordinate[origCoordArr.length + 1];
            final float[] newXArr = new float[origXArr.length + 1];
            final float[] newYArr = new float[origYArr.length + 1];

            // vorher
            for (int i = 0; i <= coordPosition; ++i) {
                newCoordArr[i] = origCoordArr[i];
                newXArr[i] = origXArr[i];
                newYArr[i] = origYArr[i];
            }

            // zu entferndes Element duplizieren, hier muss geklont werden
            newCoordArr[coordPosition + 1] = (Coordinate)(origCoordArr[coordPosition].clone());
            newXArr[coordPosition + 1] = origXArr[coordPosition];
            newYArr[coordPosition + 1] = origYArr[coordPosition];

            // nachher
            for (int i = coordPosition + 1; i < origCoordArr.length; ++i) {
                newCoordArr[i + 1] = origCoordArr[i];
                newXArr[i + 1] = origXArr[i];
                newYArr[i + 1] = origYArr[i];
            }

            // Sicherstellen dass der neue Anfangspunkt auch der Endpukt ist
            if ((coordPosition == 0) && (geometry instanceof Polygon)) {
                newCoordArr[newCoordArr.length - 1] = newCoordArr[0];
                newXArr[newXArr.length - 1] = newXArr[0];
                newYArr[newXArr.length - 1] = newYArr[0];
            }

            setNewCoordinates(entityPosition, ringPosition, newXArr, newYArr, newCoordArr);
        }
    }

    /**
     * Liefert eine exakte Kopie dieses PFeatures. Es besitzt denselben Inhalt, jedoch einen anderen Hashwert als das
     * Original.
     *
=======
     * Liefert eine exakte Kopie dieses PFeatures. Es besitzt denselben Inhalt, jedoch einen anderen Hashwert als das
     * Original.
     *
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * @return  Kopie dieses PFeatures
     */
    @Override
Solution content
    }

    /**
     * Dupliziert eine Koordinate.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position der zu duplizierenden Koordinate
     */
    public void duplicateCoordinate(final int entityPosition, final int ringPosition, final int coordPosition) {
        final Coordinate[] origCoordArr = entityRingCoordArr[entityPosition][ringPosition];
        final float[] origXArr = entityRingXArr[entityPosition][ringPosition];
        final float[] origYArr = entityRingYArr[entityPosition][ringPosition];
        final Geometry geometry = getFeature().getGeometry();

        if (((geometry instanceof Polygon) && (origCoordArr != null)
                        && ((origCoordArr.length - 1) > coordPosition))
                    || ((geometry instanceof LineString) && (origCoordArr != null)
                        && (origCoordArr.length > coordPosition)
                        && (origCoordArr.length > 2))) {
            final Coordinate[] newCoordArr = new Coordinate[origCoordArr.length + 1];

            final float[] newXArr = new float[origXArr.length + 1];
            final float[] newYArr = new float[origYArr.length + 1];

            // vorher
            for (int i = 0; i <= coordPosition; ++i) {
                newCoordArr[i] = origCoordArr[i];
                newXArr[i] = origXArr[i];
                newYArr[i] = origYArr[i];
            }

            // zu entferndes Element duplizieren, hier muss geklont werden
            newCoordArr[coordPosition + 1] = (Coordinate)(origCoordArr[coordPosition].clone());
            newXArr[coordPosition + 1] = origXArr[coordPosition];
            newYArr[coordPosition + 1] = origYArr[coordPosition];

            // nachher
            for (int i = coordPosition + 1; i < origCoordArr.length; ++i) {
                newCoordArr[i + 1] = origCoordArr[i];
                newXArr[i + 1] = origXArr[i];
                newYArr[i + 1] = origYArr[i];
            }

            // Sicherstellen dass der neue Anfangspunkt auch der Endpukt ist
            if ((coordPosition == 0) && (geometry instanceof Polygon)) {
                newCoordArr[newCoordArr.length - 1] = newCoordArr[0];
                newXArr[newXArr.length - 1] = newXArr[0];
                newYArr[newXArr.length - 1] = newYArr[0];
            }
            setNewCoordinates(entityPosition, ringPosition, newXArr, newYArr, newCoordArr);
        }
    }

    /**
     * Liefert eine exakte Kopie dieses PFeatures. Es besitzt denselben Inhalt, jedoch einen anderen Hashwert als das
     * Original.
     *
     * @return  Kopie dieses PFeatures
     */
    @Override
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
    }

    /**
<<<<<<< HEAD
     * DOCUMENT ME!
     *
     * @param   coord            coordEntity DOCUMENT ME!
     * @param   geometryFactory  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private static Point createPoint(final Coordinate coord, final GeometryFactory geometryFactory) {
        return geometryFactory.createPoint(coord);
    }

    /**
     * DOCUMENT ME!
     *
     * @param   coordArray       coordEntity DOCUMENT ME!
     * @param   geometryFactory  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private static LineString createLineString(final Coordinate[] coordArray, final GeometryFactory geometryFactory) {
        return geometryFactory.createLineString(coordArray);
    }

    /**
     * DOCUMENT ME!
     *
     * @param   ringCoordArray   coordEntity DOCUMENT ME!
     * @param   geometryFactory  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private static Polygon createPolygon(final Coordinate[][] ringCoordArray, final GeometryFactory geometryFactory) {
        // ring des polygons erstellen
        final LinearRing shell = geometryFactory.createLinearRing(ringCoordArray[0]);

        // ringe der löscher erstellen
        final Collection holes = new ArrayList();
        for (int ringIndex = 1; ringIndex < ringCoordArray.length; ringIndex++) {
            final LinearRing holeShell = geometryFactory.createLinearRing(ringCoordArray[ringIndex]);
            holes.add(holeShell);
        }

        // polygon erstellen und hinzufügen
        final Polygon polygon = geometryFactory.createPolygon(shell, holes.toArray(new LinearRing[0]));
        return polygon;
    }

    /**
=======
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * Gleicht die Geometrie an das PFeature an. Erstellt die jeweilige Geometrie (Punkt, Linie, Polygon) und f\u00FCgt
     * sie dem Feature hinzu.
     */
Solution content
    }

    /**
     * DOCUMENT ME!
     *
     * @param   coord            coordEntity DOCUMENT ME!
     * @param   geometryFactory  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private static Point createPoint(final Coordinate coord, final GeometryFactory geometryFactory) {
        return geometryFactory.createPoint(coord);
    }

    /**
     * DOCUMENT ME!
     *
     * @param   coordArray       coordEntity DOCUMENT ME!
     * @param   geometryFactory  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private static LineString createLineString(final Coordinate[] coordArray, final GeometryFactory geometryFactory) {
        return geometryFactory.createLineString(coordArray);
    }

    /**
     * DOCUMENT ME!
     *
     * @param   ringCoordArray   coordEntity DOCUMENT ME!
     * @param   geometryFactory  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private static Polygon createPolygon(final Coordinate[][] ringCoordArray, final GeometryFactory geometryFactory) {
        // ring des polygons erstellen
        final LinearRing shell = geometryFactory.createLinearRing(ringCoordArray[0]);

        // ringe der löscher erstellen
        final Collection holes = new ArrayList();
        for (int ringIndex = 1; ringIndex < ringCoordArray.length; ringIndex++) {
            final LinearRing holeShell = geometryFactory.createLinearRing(ringCoordArray[ringIndex]);
            holes.add(holeShell);
        }

        // polygon erstellen und hinzufügen
        final Polygon polygon = geometryFactory.createPolygon(shell, holes.toArray(new LinearRing[0]));
        return polygon;
    }

    /**
     * Gleicht die Geometrie an das PFeature an. Erstellt die jeweilige Geometrie (Punkt, Linie, Polygon) und f\u00FCgt
     * sie dem Feature hinzu.
     */
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
                    } else {
                        final Polygon polygon = createPolygon(entityRingCoordArr[entityIndex], geometryFactory);
                        polygons.add(polygon);
                    }
<<<<<<< HEAD

                    // multipolygon aus den polygonen erzeugen
                    final MultiPolygon multiPolygon = geometryFactory.createMultiPolygon(polygons.toArray(
                                new Polygon[0]));

                    assignSynchronizedGeometry(multiPolygon);
                } else {
                    final boolean isSingle = entityRingCoordArr.length == 1;
                    if (isSingle) {
                        if (entityRingCoordArr[0][0] == null) {
                            log.warn("coordArr==null"); // NOI18N
                        } else {
                            final boolean isPoint = entityRingCoordArr[0][0].length == 1;
                            final boolean isPolygon = (entityRingCoordArr[0][0].length > 3)
                                        && entityRingCoordArr[0][0][0].equals(
                                            entityRingCoordArr[0][0][entityRingCoordArr[0][0].length - 1]);
                            final boolean isLineString = !isPoint && !isPolygon;

                            if (isPoint) {
                                assignSynchronizedGeometry(createPoint(entityRingCoordArr[0][0][0], geometryFactory));
                            } else if (isLineString) {
                                assignSynchronizedGeometry(createLineString(entityRingCoordArr[0][0], geometryFactory));
                            } else if (isPolygon) {
                                assignSynchronizedGeometry(createPolygon(entityRingCoordArr[0], geometryFactory));
=======
                    if (coordArr.length == 1) {
                        // Point
                        final Point p = gf.createPoint(coordArr[0]);
                        assignSynchronizedGeometry(p);
                        if (viewer.isFeatureDebugging()) {
                            if (log.isDebugEnabled()) {
                                log.debug("syncGeometry:Point:" + p); // NOI18N
                            }
                        }
                    } else if ((coordArr.length > 3)
                                && coordArr[0].equals(coordArr[coordArr.length - 1])) {
                        // simple Polygon
                        final LinearRing shell = gf.createLinearRing(coordArr);
                        final Polygon poly = gf.createPolygon(shell, null);
                        assignSynchronizedGeometry(poly);
                        if (viewer.isFeatureDebugging()) {
                            if (log.isDebugEnabled()) {
                                log.debug("syncGeometry:Polygon:" + poly); // NOI18N
                            }
                        }
                        // Linestring
                        final LineString line = gf.createLineString(coordArr);
                        assignSynchronizedGeometry(line);
                        if (viewer.isFeatureDebugging()) {
                            if (log.isDebugEnabled()) {
                                log.debug("syncGeometry:Line:" + line); // NOI18N
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
                            }
                        }
                    }
Solution content
                    }
                        final Polygon polygon = createPolygon(entityRingCoordArr[entityIndex], geometryFactory);
                        polygons.add(polygon);

                    // multipolygon aus den polygonen erzeugen
                    final MultiPolygon multiPolygon = geometryFactory.createMultiPolygon(polygons.toArray(
                                new Polygon[0]));

                    assignSynchronizedGeometry(multiPolygon);
                } else {
                    final boolean isSingle = entityRingCoordArr.length == 1;
                    if (isSingle) {
                        if (entityRingCoordArr[0][0] == null) {
                            log.warn("coordArr==null"); // NOI18N
                        } else {
                            final boolean isPoint = entityRingCoordArr[0][0].length == 1;
                            final boolean isPolygon = (entityRingCoordArr[0][0].length > 3)
                                        && entityRingCoordArr[0][0][0].equals(
                                            entityRingCoordArr[0][0][entityRingCoordArr[0][0].length - 1]);
                            final boolean isLineString = !isPoint && !isPolygon;

                            if (isPoint) {
                                assignSynchronizedGeometry(createPoint(entityRingCoordArr[0][0][0], geometryFactory));
                            } else if (isLineString) {
                                assignSynchronizedGeometry(createLineString(entityRingCoordArr[0][0], geometryFactory));
                            } else if (isPolygon) {
                                assignSynchronizedGeometry(createPolygon(entityRingCoordArr[0], geometryFactory));
                            }
                        }
                    }
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Array access
Attribute
Comment
If statement
Method invocation
Variable
Chunk
Conflicting content
                }
            }
     */
    private void doGeometry(final Geometry geom) {
        if (geom instanceof Point) {
<<<<<<< HEAD
            final Point point = (Point)geom;
            entityRingCoordArr = new Coordinate[][][] {
                    {
                        { point.getCoordinate() }
                    }
                };
        } else if (geom instanceof LineString) {
            final LineString lineString = (LineString)geom;
            entityRingCoordArr = new Coordinate[][][] {
                    { lineString.getCoordinates() }
                };
        } else if (geom instanceof Polygon) {
            final Polygon polygon = (Polygon)geom;
            final int numOfHoles = polygon.getNumInteriorRing();
            entityRingCoordArr = new Coordinate[1][1 + numOfHoles][];
            entityRingCoordArr[0][0] = polygon.getExteriorRing().getCoordinates();
            for (int ringIndex = 1; ringIndex < entityRingCoordArr[0].length; ++ringIndex) {
                entityRingCoordArr[0][ringIndex] = polygon.getInteriorRingN(ringIndex - 1).getCoordinates();
            }
        } else if (geom instanceof LinearRing) {
            // doPolygon((Polygon)geom);
        } else if (geom instanceof MultiPoint) {
            entityRingCoordArr = new Coordinate[][][] {
                    { ((MultiPoint)geom).getCoordinates() }
                };
        } else if (geom instanceof MultiLineString) {
            final MultiLineString multiLineString = (MultiLineString)geom;
            final int numOfGeoms = multiLineString.getNumGeometries();
            entityRingCoordArr = new Coordinate[numOfGeoms][][];
            for (int entityIndex = 0; entityIndex < numOfGeoms; ++entityIndex) {
                final Coordinate[] coordSubArr = ((LineString)multiLineString.getGeometryN(entityIndex))
                            .getCoordinates();
                entityRingCoordArr[entityIndex] = new Coordinate[][] { coordSubArr };
            }
        } else if (geom instanceof MultiPolygon) {
            final MultiPolygon multiPolygon = (MultiPolygon)geom;
            final int numOfEntities = multiPolygon.getNumGeometries();
            entityRingCoordArr = new Coordinate[numOfEntities][][];
            for (int entityIndex = 0; entityIndex < numOfEntities; ++entityIndex) {
                final Polygon polygon = (Polygon)multiPolygon.getGeometryN(entityIndex);
                final int numOfHoles = polygon.getNumInteriorRing();
                entityRingCoordArr[entityIndex] = new Coordinate[1 + numOfHoles][];
                entityRingCoordArr[entityIndex][0] = polygon.getExteriorRing().getCoordinates();
                for (int ringIndex = 1; ringIndex < entityRingCoordArr[entityIndex].length; ++ringIndex) {
                    entityRingCoordArr[entityIndex][ringIndex] = polygon.getInteriorRingN(ringIndex - 1)
                                .getCoordinates();
                }
            }
=======
            if (viewer.isFeatureDebugging()) {
                if (log.isDebugEnabled()) {
                    log.debug("Point");               // NOI18N
                }
            }
            coordArr = new Coordinate[1];
            coordArr[0] = ((Point)geom).getCoordinate();
        } else if (geom instanceof MultiPoint) {
            if (viewer.isFeatureDebugging()) {
                if (log.isDebugEnabled()) {
                    log.debug("MultiPoint");          // NOI18N
                }
            }
            coordArr = ((MultiPoint)geom).getCoordinates();
        } else if ((geom instanceof Polygon) || (geom instanceof LinearRing)) {
            if (viewer.isFeatureDebugging()) {
                if (log.isDebugEnabled()) {
                    log.debug("Polygon||LinearRing"); // NOI18N
            final Polygon p = (Polygon)geom;
            doPolygon(p);
        } else if (geom instanceof MultiPolygon) {
            if (viewer.isFeatureDebugging()) {
                if (log.isDebugEnabled()) {
                    log.debug("MultiPolygon" + geom); // NOI18N
                }
            }
            final MultiPolygon mp = (MultiPolygon)geom;
            getPathReference().reset();
            getPathReference().setWindingRule(GeneralPath.WIND_EVEN_ODD);
            for (int i = 0; i < mp.getNumGeometries(); ++i) {
                final Polygon p = (Polygon)mp.getGeometryN(i);
                doPolygon(p);
            }
        } else if (geom instanceof LineString) {
            if (viewer.isFeatureDebugging()) {
                if (log.isDebugEnabled()) {
                    log.debug("LineString");          // NOI18N
                }
            }
            coordArr = ((LineString)geom).getCoordinates();
        } else if (geom instanceof MultiLineString) {
            if (viewer.isFeatureDebugging()) {
                if (log.isDebugEnabled()) {
                    log.debug("MultiLineString");     // NOI18N
                }
            }
            final MultiLineString mls = (MultiLineString)geom;
            final Vector coordSubArrs = new Vector();
            int coordArrayLength = 0;
            for (int i = 0; i < mls.getNumGeometries(); ++i) {
                final LineString ls = (LineString)mls.getGeometryN(i);
                final Coordinate[] coordSubArr = ls.getCoordinates();
                coordSubArrs.add(coordSubArr);
                addLinearRing(coordSubArr);
                coordArrayLength += coordSubArr.length;
            }
            coordArr = new Coordinate[coordArrayLength];
            int arrayCopyCursor = 0;
            for (final Coordinate[] coordSubArr : coordSubArrs) {
                System.arraycopy(coordSubArr, 0, coordArr, arrayCopyCursor, coordSubArr.length);
                arrayCopyCursor += coordSubArr.length;
            }
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
        }

<<<<<<< HEAD
Solution content
     */
    private void doGeometry(final Geometry geom) {
        if (geom instanceof Point) {
            final Point point = (Point)geom;
            entityRingCoordArr = new Coordinate[][][] {
                    {
                        { point.getCoordinate() }
                    }
                };
        } else if (geom instanceof LineString) {
            final LineString lineString = (LineString)geom;
            entityRingCoordArr = new Coordinate[][][] {
                    { lineString.getCoordinates() }
                };
        } else if (geom instanceof Polygon) {
            final Polygon polygon = (Polygon)geom;
            final int numOfHoles = polygon.getNumInteriorRing();
            entityRingCoordArr = new Coordinate[1][1 + numOfHoles][];
            entityRingCoordArr[0][0] = polygon.getExteriorRing().getCoordinates();
            for (int ringIndex = 1; ringIndex < entityRingCoordArr[0].length; ++ringIndex) {
                entityRingCoordArr[0][ringIndex] = polygon.getInteriorRingN(ringIndex - 1).getCoordinates();
            }
        } else if (geom instanceof LinearRing) {
            // doPolygon((Polygon)geom);
        } else if (geom instanceof MultiPoint) {
            entityRingCoordArr = new Coordinate[][][] {
                    { ((MultiPoint)geom).getCoordinates() }
                };
        } else if (geom instanceof MultiLineString) {
            final MultiLineString multiLineString = (MultiLineString)geom;
            final int numOfGeoms = multiLineString.getNumGeometries();
            entityRingCoordArr = new Coordinate[numOfGeoms][][];
            for (int entityIndex = 0; entityIndex < numOfGeoms; ++entityIndex) {
                final Coordinate[] coordSubArr = ((LineString)multiLineString.getGeometryN(entityIndex))
                            .getCoordinates();
                entityRingCoordArr[entityIndex] = new Coordinate[][] { coordSubArr };
            }
        } else if (geom instanceof MultiPolygon) {
            final MultiPolygon multiPolygon = (MultiPolygon)geom;
            final int numOfEntities = multiPolygon.getNumGeometries();
            entityRingCoordArr = new Coordinate[numOfEntities][][];
            for (int entityIndex = 0; entityIndex < numOfEntities; ++entityIndex) {
                final Polygon polygon = (Polygon)multiPolygon.getGeometryN(entityIndex);
                final int numOfHoles = polygon.getNumInteriorRing();
                entityRingCoordArr[entityIndex] = new Coordinate[1 + numOfHoles][];
                entityRingCoordArr[entityIndex][0] = polygon.getExteriorRing().getCoordinates();
                for (int ringIndex = 1; ringIndex < entityRingCoordArr[entityIndex].length; ++ringIndex) {
                    entityRingCoordArr[entityIndex][ringIndex] = polygon.getInteriorRingN(ringIndex - 1)
                                .getCoordinates();
                }
            }
        }
File
PFeature.java
Developer's decision
Combination
Kind of conflict
Array access
Attribute
Cast expression
Comment
For statement
If statement
Method invocation
Variable
Chunk
Conflicting content
        updatePath();

>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
        }

<<<<<<< HEAD
        updateXpAndYp();
        refreshDesign();
    }

    /**
     * DOCUMENT ME!
     */
    private void updateXpAndYp() {
        entityRingXArr = new float[entityRingCoordArr.length][][];
        entityRingYArr = new float[entityRingCoordArr.length][][];
        for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
            entityRingXArr[entityIndex] = new float[entityRingCoordArr[entityIndex].length][];
            entityRingYArr[entityIndex] = new float[entityRingCoordArr[entityIndex].length][];
            for (int ringIndex = 0; ringIndex < entityRingCoordArr[entityIndex].length; ringIndex++) {
                final Coordinate[] transformedCoordArr = transformCoordinateArr(
                        entityRingCoordArr[entityIndex][ringIndex]);
                final int length = transformedCoordArr.length;
                entityRingXArr[entityIndex][ringIndex] = new float[length];
                entityRingYArr[entityIndex][ringIndex] = new float[length];
                for (int coordIndex = 0; coordIndex < length; coordIndex++) {
                    entityRingXArr[entityIndex][ringIndex][coordIndex] = (float)transformedCoordArr[coordIndex].x;
                    entityRingYArr[entityIndex][ringIndex][coordIndex] = (float)transformedCoordArr[coordIndex].y;
                }
            }
=======
        final Coordinate[] points = transformCoordinateArr(coordArr);
        for (int i = 0; i < coordArr.length; ++i) {
            xp[i] = (float)(points[i].x);
            yp[i] = (float)(points[i].y);
        }

        if (geom instanceof Point) {
            setPathToPolyline(new float[] { xp[0], xp[0] }, new float[] { yp[0], yp[0] });
        } else if (geom instanceof LineString) {
            setPathToPolyline(xp, yp);
        } else if (geom instanceof MultiPoint) {
            setPathToPolyline(xp, yp);
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
        }
    }
Solution content
        }

        updateXpAndYp();
        updatePath();

        refreshDesign();
    }

    /**
     * DOCUMENT ME!
     */
    private void updateXpAndYp() {
        entityRingXArr = new float[entityRingCoordArr.length][][];
        entityRingYArr = new float[entityRingCoordArr.length][][];
        for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
            entityRingXArr[entityIndex] = new float[entityRingCoordArr[entityIndex].length][];
            entityRingYArr[entityIndex] = new float[entityRingCoordArr[entityIndex].length][];
            for (int ringIndex = 0; ringIndex < entityRingCoordArr[entityIndex].length; ringIndex++) {
                final Coordinate[] transformedCoordArr = transformCoordinateArr(
                        entityRingCoordArr[entityIndex][ringIndex]);
                final int length = transformedCoordArr.length;
                entityRingXArr[entityIndex][ringIndex] = new float[length];
                entityRingYArr[entityIndex][ringIndex] = new float[length];
                for (int coordIndex = 0; coordIndex < length; coordIndex++) {
                    entityRingXArr[entityIndex][ringIndex][coordIndex] = (float)transformedCoordArr[coordIndex].x;
                    entityRingYArr[entityIndex][ringIndex][coordIndex] = (float)transformedCoordArr[coordIndex].y;
                }
            }
        }
    }
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Array access
Attribute
Comment
For statement
If statement
Method invocation
Method signature
Variable
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
=======
     * @param  p  DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public float[] getXp(final int entityPosition, final int ringPosition) {
        return entityRingXArr[entityPosition][ringPosition];
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public float[] getXp(final int entityPosition, final int ringPosition) {
        return entityRingXArr[entityPosition][ringPosition];
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    }

    /**
<<<<<<< HEAD
     * F\u00FCgt eine neue \u00FCbergebene Koordinate in das Koordinatenarray ein, statt nur einen Punkt zu duplizieren.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   die Position des neuen Punktes im Array
     * @param  newValueX       original das Original-Array
     * @param  newValueY       der einzuf\u00FCgende Wert
     */
    public void insertCoordinate(final int entityPosition,
            final int ringPosition,
            final int coordPosition,
            final float newValueX,
            final float newValueY) {
        final Coordinate[] originalCoordArr = entityRingCoordArr[entityPosition][ringPosition];
        final float[] originalXArr = entityRingXArr[entityPosition][ringPosition];
        final float[] originalYArr = entityRingYArr[entityPosition][ringPosition];
=======
     * Entfernt eine Koordinate aus der Geometrie, z.B. beim L\u00F6schen eines Handles.
     *
     * @param   position  Position des zu l\u00F6schenden Punkes im Koordinatenarray
     * @param   original  Koordinatenarray der Geometrie
     *
     * @return  Koordinatenarray ohne die gew\u00FCnschte Koordinate
     */
    private Coordinate[] removeCoordinate(final int position, final Coordinate[] original) {
        if (((getFeature().getGeometry() instanceof Polygon) && (original != null)
                        && ((original.length - 1) > position))
                    || ((getFeature().getGeometry() instanceof LineString) && (original != null)
                        && (original.length > position)
                        && (original.length > 2))) {
            final Coordinate[] newCoordinates = new Coordinate[original.length - 1];
            // vorher
            for (int i = 0; i < position; ++i) {
                newCoordinates[i] = original[i];
            }
            // zu entferndes Element \u00FCberspringen

            // nachher
            for (int i = position; i < newCoordinates.length; ++i) {
                newCoordinates[i] = original[i + 1];
            }

            // Sicherstellen dass der neue Anfangspunkt auch der Endpukt ist (nur beim Polygon)
            if ((position == 0) && (getFeature().getGeometry() instanceof Polygon)) {
                newCoordinates[newCoordinates.length - 1] = newCoordinates[0];
            }
            if (log.isInfoEnabled()) {
                log.info("Original: " + original);  // NOI18N
                log.info("New: " + newCoordinates); // NOI18N
            }
            return newCoordinates;
        } else {
            if (original != null) {
                return original;
            } else {
                return null;
            }
        }
    }

    /**
     * Entfernt einen Punkt aus der Geometrie, z.B. beim L\u00F6schen eines Handles.
     *
     * @param   position  Position des zu l\u00F6schenden Punkes im PCanvas-Punktarray
     * @param   original  PCanvas-Punktarray der Geometrie
     *
     * @return  PCanvas-Punktarray, ohne den gew\u00FCnschten Punkt
     */
    private float[] removeCoordinate(final int position, final float[] original) {
        if (((getFeature().getGeometry() instanceof Polygon) && (original != null)
                        && ((original.length - 1) > position))
                    || ((getFeature().getGeometry() instanceof LineString) && (original != null)
                        && (original.length > position)
                        && (original.length > 2))) {
            final float[] newCoordinates = new float[original.length - 1];
            // vorher
            for (int i = 0; i < position; ++i) {
                newCoordinates[i] = original[i];
            }
            // zu entferndes Element \u00FCberspringen
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c

        if ((((getFeature().getGeometry() instanceof Polygon) || (getFeature().getGeometry() instanceof MultiPolygon))
                        && (originalXArr != null)
Solution content
    }

    /**
     * F\u00FCgt eine neue \u00FCbergebene Koordinate in das Koordinatenarray ein, statt nur einen Punkt zu duplizieren.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   die Position des neuen Punktes im Array
     * @param  newValueX       original das Original-Array
     * @param  newValueY       der einzuf\u00FCgende Wert
     */
    public void insertCoordinate(final int entityPosition,
            final int ringPosition,
            final int coordPosition,
            final float newValueX,
            final float newValueY) {
        final Coordinate[] originalCoordArr = entityRingCoordArr[entityPosition][ringPosition];
        final float[] originalXArr = entityRingXArr[entityPosition][ringPosition];
        final float[] originalYArr = entityRingYArr[entityPosition][ringPosition];

        if ((((getFeature().getGeometry() instanceof Polygon) || (getFeature().getGeometry() instanceof MultiPolygon))
                        && (originalXArr != null)
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Array access
Comment
For statement
If statement
Method declaration
Method invocation
Method signature
Variable
Chunk
Conflicting content
            final float[] newXArr = new float[originalXArr.length + 1];
            final float[] newYArr = new float[originalYArr.length + 1];

<<<<<<< HEAD
=======
    /**
     * F\u00FCgt eine neue \u00FCbergebene Koordinate in das Koordinatenarray ein, statt nur einen Punkt zu duplizieren.
     *
     * @param   position  die Position des neuen Punktes im Array
     * @param   original  das Original-Array
     * @param   newValue  der einzuf\u00FCgende Wert
     *
     * @return  Coordinate-Array mit der neue Koordinate
     */
    public Coordinate[] insertCoordinate(final int position, final Coordinate[] original, final Coordinate newValue) {
        if (((getFeature().getGeometry() instanceof Polygon) && (original != null)
                        && ((original.length - 1) >= position))
                    || ((getFeature().getGeometry() instanceof LineString) && (original != null)
                        && (original.length > position)
                        && (original.length > 2))) {
            final Coordinate[] newCoordinates = new Coordinate[original.length + 1];
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
            // vorher
            for (int i = 0; i < coordPosition; ++i) {
                newCoordArr[i] = originalCoordArr[i];
Solution content
            final float[] newXArr = new float[originalXArr.length + 1];
            final float[] newYArr = new float[originalYArr.length + 1];

            // vorher
            for (int i = 0; i < coordPosition; ++i) {
                newCoordArr[i] = originalCoordArr[i];
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
If statement
Method invocation
Method signature
Variable
Chunk
Conflicting content
    }

    /**
<<<<<<< HEAD
     * Entfernt eine Koordinate aus der Geometrie, z.B. beim L\u00F6schen eines Handles.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position des zu l\u00F6schenden Punkes im Koordinatenarray
     */
    public void removeCoordinate(final int entityPosition, final int ringPosition, final int coordPosition) {
        final Coordinate[] originalCoordArr = entityRingCoordArr[entityPosition][ringPosition];
        final float[] originalXArr = entityRingXArr[entityPosition][ringPosition];
        final float[] originalYArr = entityRingYArr[entityPosition][ringPosition];

        if ((((getFeature().getGeometry() instanceof Polygon) || (getFeature().getGeometry() instanceof MultiPolygon))
                        && (originalCoordArr != null)
                        && ((originalCoordArr.length - 1) > coordPosition))
                    || ((getFeature().getGeometry() instanceof LineString) && (originalCoordArr != null)
                        && (originalCoordArr.length > coordPosition)
                        && (originalCoordArr.length > 2))) {
            final Coordinate[] newCoordArr = new Coordinate[originalCoordArr.length - 1];
            final float[] newXArr = new float[originalXArr.length - 1];
            final float[] newYArr = new float[originalYArr.length - 1];

=======
     * F\u00FCgt eine neue \u00FCbergebene Koordinate in das Koordinatenarray ein, statt nur einen Punkt zu duplizieren.
     *
     * @param   position  die Position des neuen Punktes im Array
     * @param   original  das Original-Array
     * @param   newValue  der einzuf\u00FCgende Wert
     *
     * @return  float-Array mit der neu eingef\u00FCgten Koordinate
     */
    public float[] insertCoordinate(final int position, final float[] original, final float newValue) {
        if (((getFeature().getGeometry() instanceof Polygon) && (original != null)
                        && ((original.length - 1) >= position))
                    || ((getFeature().getGeometry() instanceof LineString) && (original != null)
                        && (original.length > position)
                        && (original.length > 2))) {
            final float[] newCoordinates = new float[original.length + 1];
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
            // vorher
            for (int i = 0; i < coordPosition; ++i) {
                newCoordArr[i] = originalCoordArr[i];
Solution content
    }

    /**
     * Entfernt eine Koordinate aus der Geometrie, z.B. beim L\u00F6schen eines Handles.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position des zu l\u00F6schenden Punkes im Koordinatenarray
     */
    public void removeCoordinate(final int entityPosition, final int ringPosition, final int coordPosition) {
        final Coordinate[] originalCoordArr = entityRingCoordArr[entityPosition][ringPosition];
        final float[] originalXArr = entityRingXArr[entityPosition][ringPosition];
        final float[] originalYArr = entityRingYArr[entityPosition][ringPosition];

        if ((((getFeature().getGeometry() instanceof Polygon) || (getFeature().getGeometry() instanceof MultiPolygon))
                        && (originalCoordArr != null)
                        && ((originalCoordArr.length - 1) > coordPosition))
                    || ((getFeature().getGeometry() instanceof LineString) && (originalCoordArr != null)
                        && (originalCoordArr.length > coordPosition)
                        && (originalCoordArr.length > 2))) {
            final Coordinate[] newCoordArr = new Coordinate[originalCoordArr.length - 1];
            final float[] newXArr = new float[originalXArr.length - 1];
            final float[] newYArr = new float[originalYArr.length - 1];

            // vorher
            for (int i = 0; i < coordPosition; ++i) {
                newCoordArr[i] = originalCoordArr[i];
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Array access
Comment
If statement
Method invocation
Method signature
Variable
Chunk
Conflicting content
                newXArr[newYArr.length - 1] = newYArr[0];
            }

<<<<<<< HEAD
            setNewCoordinates(entityPosition, ringPosition, newXArr, newYArr, newCoordArr);

            // Jetzt sind allerdings alle Locator noch falsch und das handle existiert noch
            // handleLayer.removeChild(this);
            // Das w\u00E4re zwar optimal (Performance) korrigiert allerdings nicht die falschen
            // Locator
        }
=======
    /**
     * Erm\u00F6glicht es die Moethde removeCoordinate() von ausserhalb aufzurufen.
     *
     * @param   position  Position des neuen Punkes im PCanvas-Punktarray
     * @param   original  PCanvas-Punktarray der Geometrie
     *
     * @return  PCanvas-Punktarray, mit dem neuen Punkt
     */
    public float[] removeCoordinateFromOutside(final int position, final float[] original) {
        return removeCoordinate(position, original);
    }

    /**
     * Erm\u00F6glicht es die Moethde removeCoordinate() von ausserhalb aufzurufen.
     *
     * @param   position  Position des neuen Punkes im Coordinate-Array
     * @param   original  Coordinate-Array der Geometrie
     *
     * @return  Coordinate-Array, mit der neuen Koordinate
     */
    public Coordinate[] removeCoordinateFromOutside(final int position, final Coordinate[] original) {
        return removeCoordinate(position, original);
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
    }

    /**
Solution content
                newXArr[newYArr.length - 1] = newYArr[0];
            }

            setNewCoordinates(entityPosition, ringPosition, newXArr, newYArr, newCoordArr);

            // Jetzt sind allerdings alle Locator noch falsch und das handle existiert noch
            // handleLayer.removeChild(this);
            // Das w\u00E4re zwar optimal (Performance) korrigiert allerdings nicht die falschen
            // Locator
        }
    }

    /**
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Method invocation
Method signature
Return statement
Chunk
Conflicting content
     * Erzeugt ein PHandle an den Koordinaten eines bestimmten Punktes des Koordinatenarrays und f\u00FCgt es dem
     * HandleLayer hinzu.
     *
<<<<<<< HEAD
     * @param  handleLayer     PLayer dem das Handle als Kind hinzugef\u00FCgt wird
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position des Punktes im Koordinatenarray
=======
     * @param  handleLayer  PLayer dem das Handle als Kind hinzugef\u00FCgt wird
     * @param  position     Position des Punktes im Koordinatenarray
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public void addHandle(final PNode handleLayer,
            final int entityPosition,
Solution content
     * Erzeugt ein PHandle an den Koordinaten eines bestimmten Punktes des Koordinatenarrays und f\u00FCgt es dem
     * HandleLayer hinzu.
     *
     * @param  handleLayer     PLayer dem das Handle als Kind hinzugef\u00FCgt wird
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position des Punktes im Koordinatenarray
     */
    public void addHandle(final PNode handleLayer,
            final int entityPosition,
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
     * als 1cm vom angeklickten Handle entfernt ist. Falls beides zutrifft, wird eine MultiMap mit diesen Features
     * gef\u00FCllt und zur\u00FCckgegeben.
     *
<<<<<<< HEAD
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     * @param   coordPosition   Postion des geklickten Handles im Koordinatenarray um Koordinaten herauszufinden
=======
     * @param   posInArray  Postion des geklickten Handles im Koordinatenarray um Koordinaten herauszufinden
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     *
     * @return  MultiMap mit Features, die die Bedingungen erf\u00FCllen
     */
Solution content
     * als 1cm vom angeklickten Handle entfernt ist. Falls beides zutrifft, wird eine MultiMap mit diesen Features
     * gef\u00FCllt und zur\u00FCckgegeben.
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     * @param   coordPosition   Postion des geklickten Handles im Koordinatenarray um Koordinaten herauszufinden
     *
     * @return  MultiMap mit Features, die die Bedingungen erf\u00FCllen
     */
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
     * F\u00FCgt dem PFeature spezielle Handles zum Rotieren des PFeatures an den Eckpunkten hinzu. Zus\u00E4tzlich ein
     * Handle am Rotationsmittelpunkt, um diesen manuell \u00E4nder nzu k\u00F6nnen.
     *
<<<<<<< HEAD
     * @param  handleLayer     HandleLayer der MappingComponent
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   DOCUMENT ME!
=======
     * @param  handleLayer  HandleLayer der MappingComponent
     * @param  position     DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    private void addRotationHandle(final PNode handleLayer,
            final int entityPosition,
Solution content
     * F\u00FCgt dem PFeature spezielle Handles zum Rotieren des PFeatures an den Eckpunkten hinzu. Zus\u00E4tzlich ein
     * Handle am Rotationsmittelpunkt, um diesen manuell \u00E4nder nzu k\u00F6nnen.
     *
     * @param  handleLayer     HandleLayer der MappingComponent
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   DOCUMENT ME!
     */
    private void addRotationHandle(final PNode handleLayer,
            final int entityPosition,
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * Ver\u00E4ndert die PCanvas-Koordinaten eines Punkts des PFeatures.
     *
<<<<<<< HEAD
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position des Punkts im Koordinatenarray
     * @param  newX            neue X-Koordinate
     * @param  newY            neue Y-Koordinate
=======
     * @param  positionInArray  Position des Punkts im Koordinatenarray
     * @param  newX             neue X-Koordinate
     * @param  newY             neue Y-Koordinate
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public void moveCoordinateToNewPiccoloPosition(final int entityPosition,
            final int ringPosition,
Solution content
    /**
     * Ver\u00E4ndert die PCanvas-Koordinaten eines Punkts des PFeatures.
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  coordPosition   Position des Punkts im Koordinatenarray
     * @param  newX            neue X-Koordinate
     * @param  newY            neue Y-Koordinate
     */
    public void moveCoordinateToNewPiccoloPosition(final int entityPosition,
            final int ringPosition,
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    public Feature[] split() {
        if (isSplittable()) {
            final PureNewFeature[] ret = new PureNewFeature[2];
<<<<<<< HEAD
            int from = ((Integer)(splitPolygonFromHandle.getClientProperty("coordinate_position_coord"))).intValue(); // NOI18N
            int to = ((Integer)(splitPolygonToHandle.getClientProperty("coordinate_position_coord"))).intValue();     // NOI18N
=======
            int from = ((Integer)(splitPolygonFromHandle.getClientProperty("coordinate_position_in_arr"))).intValue(); // NOI18N
            int to = ((Integer)(splitPolygonToHandle.getClientProperty("coordinate_position_in_arr"))).intValue();     // NOI18N
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c

            splitPolygonToHandle = null;
            splitPolygonFromHandle = null;
Solution content
    public Feature[] split() {
        if (isSplittable()) {
            final PureNewFeature[] ret = new PureNewFeature[2];
            int from = ((Integer)(splitPolygonFromHandle.getClientProperty("coordinate_position_coord"))).intValue(); // NOI18N
            int to = ((Integer)(splitPolygonToHandle.getClientProperty("coordinate_position_coord"))).intValue();     // NOI18N

            splitPolygonToHandle = null;
            splitPolygonFromHandle = null;
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method invocation
Variable
Chunk
Conflicting content
                }
=======
                    log.debug("Scale=" + scale); // NOI18N
                }
            }
<<<<<<< HEAD
            for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
                for (int ringIndex = 0; ringIndex < entityRingCoordArr[entityIndex].length; ringIndex++) {
                    for (int coordIndex = 0; coordIndex < entityRingCoordArr[entityIndex][ringIndex].length;
                                ++coordIndex) {
                        final Coordinate[] coordArr = entityRingCoordArr[entityIndex][ringIndex];
                        final float[] xArr = entityRingXArr[entityIndex][ringIndex];
                        final float[] yArr = entityRingYArr[entityIndex][ringIndex];

                        xArr[coordIndex] = xArr[coordIndex] + (float)(dim.getWidth() / (float)scale);
                        yArr[coordIndex] = yArr[coordIndex] + (float)(dim.getHeight() / (float)scale);
                        coordArr[coordIndex].x = wtst.getSourceX(xArr[coordIndex]); // -x_offset);
                        coordArr[coordIndex].y = wtst.getSourceY(yArr[coordIndex]); // -y_offset);
                    }
            for (int j = 0; j < xp.length; ++j) {
                xp[j] = xp[j] + (float)(dim.getWidth() / (float)scale);
                yp[j] = yp[j] + (float)(dim.getHeight() / (float)scale);
                coordArr[j].x = wtst.getSourceX(xp[j]); // -x_offset);
                coordArr[j].y = wtst.getSourceY(yp[j]); // -y_offset);
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
            }
            updatePath();
            syncGeometry();
Solution content
                    log.debug("Scale=" + scale); // NOI18N
                }
            }
            for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
                for (int ringIndex = 0; ringIndex < entityRingCoordArr[entityIndex].length; ringIndex++) {
                    for (int coordIndex = 0; coordIndex < entityRingCoordArr[entityIndex][ringIndex].length;
                                ++coordIndex) {
                        final Coordinate[] coordArr = entityRingCoordArr[entityIndex][ringIndex];
                        final float[] xArr = entityRingXArr[entityIndex][ringIndex];
                        final float[] yArr = entityRingYArr[entityIndex][ringIndex];

                        xArr[coordIndex] = xArr[coordIndex] + (float)(dim.getWidth() / (float)scale);
                        yArr[coordIndex] = yArr[coordIndex] + (float)(dim.getHeight() / (float)scale);
                        coordArr[coordIndex].x = wtst.getSourceX(xArr[coordIndex]); // -x_offset);
                        coordArr[coordIndex].y = wtst.getSourceY(yArr[coordIndex]); // -y_offset);
                    }
                }
            }
            updatePath();
            syncGeometry();
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Array access
Cast expression
Comment
For statement
Method invocation
Variable
Chunk
Conflicting content
                    infoNode.setVisible(false);
                }
                pswingComp.addPropertyChangeListener("fullBounds", new PropertyChangeListener() { // NOI18N
<<<<<<< HEAD

=======
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
                        @Override
                        public void propertyChange(final PropertyChangeEvent evt) {
                            p.setWidth(pswingComp.getWidth());
Solution content
                    infoNode.setVisible(false);
                }
                pswingComp.addPropertyChangeListener("fullBounds", new PropertyChangeListener() { // NOI18N

                        @Override
                        public void propertyChange(final PropertyChangeEvent evt) {
                            p.setWidth(pswingComp.getWidth());
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Blank
Chunk
Conflicting content
    }

    /**
<<<<<<< HEAD
=======
     * Erstellt einen PPath zu diesem PFeature mittels der PCanvas-Arrays Xp und Yp.
     *
     * @return  PPath
     */
    public PPath getPurePPath() {
        final PPath pp = new PPath();
        pp.setPathToPolyline(xp, yp);
        // pp.setStroke(new FixedWidthStroke());
// pp.setStroke(new BasicStroke());
        return pp;
    }

    /**
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
Solution content
    }

    /**
     * DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
     * DOCUMENT ME!
     *
    }
    /**

<<<<<<< HEAD
     * @param  polygon  DOCUMENT ME!
     */
    public void addEntity(final Polygon polygon) {
        if (getFeature().isEditable()) {
            final int numOfHoles = polygon.getNumInteriorRing();
            final Coordinate[][][] origEntityCoordArr = entityRingCoordArr;

            // neues entityRingCoordArr mit entity-länge + 1, und alte daten daten darin kopieren
            final Coordinate[][][] newEntityCoordArr = new Coordinate[origEntityCoordArr.length + 1][][];
            System.arraycopy(origEntityCoordArr, 0, newEntityCoordArr, 0, origEntityCoordArr.length);

            // neues ringCoordArr für neues entity erzeugen, und Hülle + Löcher darin speicherm
            final Coordinate[][] newRingCoordArr = new Coordinate[1 + numOfHoles][];
            newRingCoordArr[0] = polygon.getExteriorRing().getCoordinates();
            for (int ringIndex = 1; ringIndex < newRingCoordArr.length; ++ringIndex) {
                newRingCoordArr[ringIndex] = polygon.getInteriorRingN(ringIndex - 1).getCoordinates();
            }

            // neues entity an letzte stelle speichern, und als neues entityRingCoordArr übernehmen
            newEntityCoordArr[origEntityCoordArr.length] = newRingCoordArr;
            entityRingCoordArr = newEntityCoordArr;

            // refresh
            syncGeometry();
            updateXpAndYp();
            updatePath();
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  DOCUMENT ME!
     */
    public void removeEntity(final int entityPosition) {
        if (getFeature().isEditable()) {
            final Coordinate[][][] origEntityCoordArr = entityRingCoordArr;

            final boolean isInBounds = (entityPosition >= 0) && (entityPosition < origEntityCoordArr.length);

            if (isInBounds) {
                if (origEntityCoordArr.length == 1) {           // wenn nur ein entity drin
                    entityRingCoordArr = new Coordinate[0][][]; // dann nur durch leeres ersetzen
                } else {                                        // wenn mehr als ein entity drin

                    // neues entityRingCoordArr mit entity-länge - 1, und originaldaten daten darin kopieren außer
                    // entityPosition
                    final Coordinate[][][] newEntityCoordArr = new Coordinate[origEntityCoordArr.length - 1][][];
                    // alles vor entityPosition
                    System.arraycopy(origEntityCoordArr, 0, newEntityCoordArr, 0, entityPosition);
                    // alles nach entityPosition
                    System.arraycopy(
                        origEntityCoordArr,
                        entityPosition
                                + 1,
                        newEntityCoordArr,
                        entityPosition,
                        newEntityCoordArr.length
                                - entityPosition);
                    // original durch neues ersetzen
                    entityRingCoordArr = newEntityCoordArr;
                }

                // refresh
                syncGeometry();
                updateXpAndYp();
                updatePath();
            }
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  lineString      DOCUMENT ME!
     */
    public void addHoleToEntity(final int entityPosition, final LineString lineString) {
        if (getFeature().isEditable()) {
            final boolean isInBounds = (entityPosition >= 0) && (entityPosition < entityRingCoordArr.length);
            if (isInBounds) {
                final Coordinate[][] origRingCoordArr = entityRingCoordArr[entityPosition];
                final int origLength = origRingCoordArr.length;

                final Coordinate[][] newRingCoordArr = new Coordinate[origLength + 1][];
                System.arraycopy(origRingCoordArr, 0, newRingCoordArr, 0, origLength);
                newRingCoordArr[origLength] = lineString.getCoordinates();

                entityRingCoordArr[entityPosition] = newRingCoordArr;
            }

            syncGeometry();
            updateXpAndYp();
            updatePath();
        }
    }
    /**
     * alle entities die diesen punkt beinhalten (löscher werden ignoriert, da sonst nur eine entity existieren kann).
     *
     * @param   point  coordinate DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private List getEntitiesPositionsUnderPoint(final Point point) {
        final List positions = new ArrayList();
        final Geometry geometry = getFeature().getGeometry();
        for (int entityIndex = 0; entityIndex < geometry.getNumGeometries(); entityIndex++) {
            final Geometry envelope = geometry.getEnvelope(); // ohne löscher
            if (envelope.contains(point)) {
                positions.add(entityIndex);
            }
        }
        return positions;
    }

    /**
     * DOCUMENT ME!
     *
     * @param  point  coordinate DOCUMENT ME!
     */
    public void removeHoleUnderPoint(final Point point) {
        final int entityPosition = getMostInnerEntityUnderPoint(point);

        final boolean isEntityInBounds = (entityPosition >= 0) && (entityPosition < entityRingCoordArr.length);
        if (isEntityInBounds) {
            final Coordinate[][] origRingCoordArr = entityRingCoordArr[entityPosition];
            final int holePosition = getHolePositionUnderPoint(point, entityPosition);
            final boolean isRingInBounds = (holePosition >= 0) && (holePosition < origRingCoordArr.length);

            if (isRingInBounds) {
                final Polygon entityPolygon = ((Polygon)getFeature().getGeometry().getGeometryN(entityPosition));
                final Geometry holeGeometry = entityPolygon.getInteriorRingN(holePosition - 1).getEnvelope(); // zu entfernende
                // Geometrie, ohne
                // Löcher
                if (!hasEntitiesInGeometry(holeGeometry)) {
                    final Coordinate[][] newRingCoordArr = new Coordinate[origRingCoordArr.length - 1][];
                    System.arraycopy(origRingCoordArr, 0, newRingCoordArr, 0, holePosition);
                    System.arraycopy(
                        origRingCoordArr,
                        holePosition
                                + 1,
                        newRingCoordArr,
                        holePosition,
                        newRingCoordArr.length
                                - holePosition);

                    // original durch neues ersetzen
                    entityRingCoordArr[entityPosition] = newRingCoordArr;

                    // refresh
                    syncGeometry();
                    updateXpAndYp();
                    updatePath();
                }
            }
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   point           coordinate DOCUMENT ME!
     * @param   entityPosition  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public int getHolePositionUnderPoint(final Point point, final int entityPosition) {
        final Geometry geometry = getFeature().getGeometry();
        final boolean isInBounds = (entityPosition >= 0) && (entityPosition < geometry.getNumGeometries());
        if (isInBounds) {
            final Polygon polygon = (Polygon)geometry.getGeometryN(entityPosition);

            if (polygon.getNumInteriorRing() > 0) { // hat überhaupt löscher ?
                for (int ringIndex = 0; ringIndex < polygon.getNumInteriorRing(); ringIndex++) {
                    final Geometry envelope = polygon.getInteriorRingN(ringIndex).getEnvelope();
                    if (envelope.contains(point)) {
                        return ringIndex + 1;       // +1 weil ring 0 der äußere ring ist
                    }
                }
            }
        }
        return -1;
    }

    /**
     * DOCUMENT ME!
     *
     * @param   point  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private int getMostInnerEntityUnderPoint(final Point point) {
        // alle außenringe (löscher werden zunächst ignoriert) holen die grundsätzlich unter der koordinate liegen
        final List entityPositions = getEntitiesPositionsUnderPoint(point);

        // interessant sind nur entities die Löscher haben
        final List entityPositionsWithHoles = new ArrayList();
        for (final int position : entityPositions) {
            if (entityRingCoordArr[position].length > 1) {
                entityPositionsWithHoles.add(position);
            }
        }

        final Geometry geometry = getFeature().getGeometry();

        if (entityPositionsWithHoles.size() == 1) {
            return entityPositionsWithHoles.get(0); // nur eine entity mit loch, also muss sie das sein
        } else {
            // mehrere entities, es wird geprüft welche entity welche andere beinhaltet
            for (int indexA = 0; indexA < entityPositionsWithHoles.size(); indexA++) {
                final int entityPositionA = entityPositionsWithHoles.get(indexA);
                final Geometry envelopeA = geometry.getGeometryN(entityPositionA).getEnvelope();

                boolean containsAnyOtherRing = false;
                for (int indexB = 0; indexB < entityPositionsWithHoles.size(); indexB++) {
                    if (indexA != indexB) {
                        final int entityPositionB = entityPositionsWithHoles.get(indexB);
                        final Geometry envelopeB = geometry.getGeometryN(entityPositionB).getEnvelope();
                        if (envelopeA.contains(envelopeB)) {
                            containsAnyOtherRing = true;
                        }
                    }
                }
                if (!containsAnyOtherRing) {
                    return entityPositionA;
                }
            }

            return -1;
        }
    /**
     * DOCUMENT ME!
     *
     * @param   point  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public int getEntityPositionUnderPoint(final Point point) {
        for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
            final Geometry geometry = getFeature().getGeometry().getGeometryN(entityIndex);

            if (geometry.contains(point)) {
                return entityIndex;
            }
        }
        return -1;
    }

    /**
     * DOCUMENT ME!
     *
     * @param   geometry  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public boolean hasEntitiesInGeometry(final Geometry geometry) {
        for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
            final Geometry entityGeometry = getFeature().getGeometry().getGeometryN(entityIndex);

            if (geometry.contains(entityGeometry)) {
                return true;
            }
        }
        return false;
    }

    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  DOCUMENT ME!
     */
    public void setSelectedEntity(final int entityPosition) {
        final boolean isInBounds = (entityPosition >= 0) && (entityPosition < entityRingCoordArr.length);
        if (isInBounds) {
            selectedEntity = entityPosition;
        } else {
            selectedEntity = -1;
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   toSelect   DOCUMENT ME!
     * @param   colFill    DOCUMENT ME!
     * @param   colEdge    DOCUMENT ME!
     * @param   insetSize  DOCUMENT ME!
     *
=======
     * @param   toSelect   DOCUMENT ME!
     * @param   colFill    DOCUMENT ME!
     * @param   colEdge    DOCUMENT ME!
     * @param   insetSize  DOCUMENT ME!
     *
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * @return  DOCUMENT ME!
     */
    private Image highlightImageAsSelected(final Image toSelect, Color colFill, Color colEdge, final int insetSize) {
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param  polygon  DOCUMENT ME!
     */
    public void addEntity(final Polygon polygon) {
        if (getFeature().isEditable()) {

            final int numOfHoles = polygon.getNumInteriorRing();
            final Coordinate[][][] origEntityCoordArr = entityRingCoordArr;

            // neues entityRingCoordArr mit entity-länge + 1, und alte daten daten darin kopieren
            final Coordinate[][][] newEntityCoordArr = new Coordinate[origEntityCoordArr.length + 1][][];
            System.arraycopy(origEntityCoordArr, 0, newEntityCoordArr, 0, origEntityCoordArr.length);

            // neues ringCoordArr für neues entity erzeugen, und Hülle + Löcher darin speicherm
            final Coordinate[][] newRingCoordArr = new Coordinate[1 + numOfHoles][];
            newRingCoordArr[0] = polygon.getExteriorRing().getCoordinates();
            for (int ringIndex = 1; ringIndex < newRingCoordArr.length; ++ringIndex) {
                newRingCoordArr[ringIndex] = polygon.getInteriorRingN(ringIndex - 1).getCoordinates();
            }

            // neues entity an letzte stelle speichern, und als neues entityRingCoordArr übernehmen
            newEntityCoordArr[origEntityCoordArr.length] = newRingCoordArr;
            entityRingCoordArr = newEntityCoordArr;

            // refresh
            syncGeometry();
            updateXpAndYp();
            updatePath();
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  DOCUMENT ME!
     */
    public void removeEntity(final int entityPosition) {
        if (getFeature().isEditable()) {
            final Coordinate[][][] origEntityCoordArr = entityRingCoordArr;

            final boolean isInBounds = (entityPosition >= 0) && (entityPosition < origEntityCoordArr.length);

            if (isInBounds) {
                if (origEntityCoordArr.length == 1) {           // wenn nur ein entity drin
                    entityRingCoordArr = new Coordinate[0][][]; // dann nur durch leeres ersetzen
                } else {                                        // wenn mehr als ein entity drin

                    // neues entityRingCoordArr mit entity-länge - 1, und originaldaten daten darin kopieren außer
                    // entityPosition
                    final Coordinate[][][] newEntityCoordArr = new Coordinate[origEntityCoordArr.length - 1][][];
                    // alles vor entityPosition
                    System.arraycopy(origEntityCoordArr, 0, newEntityCoordArr, 0, entityPosition);
                    // alles nach entityPosition
                    System.arraycopy(
                        origEntityCoordArr,
                        entityPosition
                                + 1,
                        newEntityCoordArr,
                        entityPosition,
                        newEntityCoordArr.length
                                - entityPosition);
                    // original durch neues ersetzen
                    entityRingCoordArr = newEntityCoordArr;
    /**
                }

                // refresh
                syncGeometry();
                updateXpAndYp();
                updatePath();
            }
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  DOCUMENT ME!
     * @param  lineString      DOCUMENT ME!
     */
    public void addHoleToEntity(final int entityPosition, final LineString lineString) {
        if (getFeature().isEditable()) {
            final boolean isInBounds = (entityPosition >= 0) && (entityPosition < entityRingCoordArr.length);
            if (isInBounds) {
                final Coordinate[][] origRingCoordArr = entityRingCoordArr[entityPosition];
                final int origLength = origRingCoordArr.length;

                final Coordinate[][] newRingCoordArr = new Coordinate[origLength + 1][];
                System.arraycopy(origRingCoordArr, 0, newRingCoordArr, 0, origLength);
                newRingCoordArr[origLength] = lineString.getCoordinates();

                entityRingCoordArr[entityPosition] = newRingCoordArr;
            }

            syncGeometry();
            updateXpAndYp();
            updatePath();
        }
    }
    /**
     * alle entities die diesen punkt beinhalten (löscher werden ignoriert, da sonst nur eine entity existieren kann).
     *
     * @param   point  coordinate DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private List getEntitiesPositionsUnderPoint(final Point point) {
        final List positions = new ArrayList();
        final Geometry geometry = getFeature().getGeometry();
        for (int entityIndex = 0; entityIndex < geometry.getNumGeometries(); entityIndex++) {
            final Geometry envelope = geometry.getEnvelope(); // ohne löscher
            if (envelope.contains(point)) {
                positions.add(entityIndex);
            }
        }
        return positions;
    }

    /**
     * DOCUMENT ME!
     *
     * @param  point  coordinate DOCUMENT ME!
     */
    public void removeHoleUnderPoint(final Point point) {
        final int entityPosition = getMostInnerEntityUnderPoint(point);

        final boolean isEntityInBounds = (entityPosition >= 0) && (entityPosition < entityRingCoordArr.length);
        if (isEntityInBounds) {
            final Coordinate[][] origRingCoordArr = entityRingCoordArr[entityPosition];
            final int holePosition = getHolePositionUnderPoint(point, entityPosition);
            final boolean isRingInBounds = (holePosition >= 0) && (holePosition < origRingCoordArr.length);

            if (isRingInBounds) {
                final Polygon entityPolygon = ((Polygon)getFeature().getGeometry().getGeometryN(entityPosition));
                final Geometry holeGeometry = entityPolygon.getInteriorRingN(holePosition - 1).getEnvelope(); // zu entfernende
                // Geometrie, ohne
                // Löcher
                if (!hasEntitiesInGeometry(holeGeometry)) {
                    final Coordinate[][] newRingCoordArr = new Coordinate[origRingCoordArr.length - 1][];
                    System.arraycopy(origRingCoordArr, 0, newRingCoordArr, 0, holePosition);
                    System.arraycopy(
                        origRingCoordArr,
                        holePosition
                                + 1,
                        newRingCoordArr,
                        holePosition,
                        newRingCoordArr.length
                                - holePosition);

                    // original durch neues ersetzen
                    entityRingCoordArr[entityPosition] = newRingCoordArr;

                    // refresh
                    syncGeometry();
                    updateXpAndYp();
                    updatePath();
                }
            }
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   point           coordinate DOCUMENT ME!
     * @param   entityPosition  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public int getHolePositionUnderPoint(final Point point, final int entityPosition) {
        final Geometry geometry = getFeature().getGeometry();
        final boolean isInBounds = (entityPosition >= 0) && (entityPosition < geometry.getNumGeometries());
        if (isInBounds) {
            final Polygon polygon = (Polygon)geometry.getGeometryN(entityPosition);

            if (polygon.getNumInteriorRing() > 0) { // hat überhaupt löscher ?
                for (int ringIndex = 0; ringIndex < polygon.getNumInteriorRing(); ringIndex++) {
                    final Geometry envelope = polygon.getInteriorRingN(ringIndex).getEnvelope();
                    if (envelope.contains(point)) {
                        return ringIndex + 1;       // +1 weil ring 0 der äußere ring ist
                    }
                }
            }
        }
        return -1;
    }
     * DOCUMENT ME!
     *
     * @param   point  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private int getMostInnerEntityUnderPoint(final Point point) {
        // alle außenringe (löscher werden zunächst ignoriert) holen die grundsätzlich unter der koordinate liegen
        final List entityPositions = getEntitiesPositionsUnderPoint(point);

        // interessant sind nur entities die Löscher haben
        final List entityPositionsWithHoles = new ArrayList();
        for (final int position : entityPositions) {
            if (entityRingCoordArr[position].length > 1) {
                entityPositionsWithHoles.add(position);
            }
        }

        final Geometry geometry = getFeature().getGeometry();

        if (entityPositionsWithHoles.size() == 1) {
            return entityPositionsWithHoles.get(0); // nur eine entity mit loch, also muss sie das sein
        } else {
            // mehrere entities, es wird geprüft welche entity welche andere beinhaltet
            for (int indexA = 0; indexA < entityPositionsWithHoles.size(); indexA++) {
                final int entityPositionA = entityPositionsWithHoles.get(indexA);
                final Geometry envelopeA = geometry.getGeometryN(entityPositionA).getEnvelope();

                boolean containsAnyOtherRing = false;
                for (int indexB = 0; indexB < entityPositionsWithHoles.size(); indexB++) {
                    if (indexA != indexB) {
                        final int entityPositionB = entityPositionsWithHoles.get(indexB);
                        final Geometry envelopeB = geometry.getGeometryN(entityPositionB).getEnvelope();
                        if (envelopeA.contains(envelopeB)) {
                            containsAnyOtherRing = true;
                        }
                    }
                }
                if (!containsAnyOtherRing) {
                    return entityPositionA;
                }
            }

            return -1;
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   point  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public int getEntityPositionUnderPoint(final Point point) {
        for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
            final Geometry geometry = getFeature().getGeometry().getGeometryN(entityIndex);

            if (geometry.contains(point)) {
                return entityIndex;
            }
        }
        return -1;
    }

    /**
     * DOCUMENT ME!
     *
     * @param   geometry  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public boolean hasEntitiesInGeometry(final Geometry geometry) {
        for (int entityIndex = 0; entityIndex < entityRingCoordArr.length; entityIndex++) {
            final Geometry entityGeometry = getFeature().getGeometry().getGeometryN(entityIndex);

            if (geometry.contains(entityGeometry)) {
                return true;
            }
        }
        return false;
    }

    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  DOCUMENT ME!
     */
    public void setSelectedEntity(final int entityPosition) {
        final boolean isInBounds = (entityPosition >= 0) && (entityPosition < entityRingCoordArr.length);
        if (isInBounds) {
            selectedEntity = entityPosition;
        } else {
            selectedEntity = -1;
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   toSelect   DOCUMENT ME!
     * @param   colFill    DOCUMENT ME!
     * @param   colEdge    DOCUMENT ME!
     * @param   insetSize  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private Image highlightImageAsSelected(final Image toSelect, Color colFill, Color colEdge, final int insetSize) {
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param  entityPosition  coordEntity DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  xp              DOCUMENT ME!
     * @param  yp              DOCUMENT ME!
     * @param  coordArr        DOCUMENT ME!
     */
    private void setNewCoordinates(final int entityPosition,
            final int ringPosition,
            final float[] xp,
            final float[] yp,
            final Coordinate[] coordArr) {
        if (isValidWithThisCoordinates(entityPosition, ringPosition, coordArr)) {
            entityRingCoordArr[entityPosition][ringPosition] = coordArr;
            entityRingXArr[entityPosition][ringPosition] = xp;
            entityRingYArr[entityPosition][ringPosition] = yp;

            syncGeometry();

            updatePath();
            getViewer().showHandles(false);
            final Collection features = new ArrayList();
            features.add(getFeature());
            ((DefaultFeatureCollection)getViewer().getFeatureCollection()).fireFeaturesChanged(features);
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     *
=======
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * @return  DOCUMENT ME!
     */
    public boolean isValid(final int entityPosition, final int ringPosition) {
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param  entityPosition  coordEntity DOCUMENT ME!
     * @param  ringPosition    DOCUMENT ME!
     * @param  xp              DOCUMENT ME!
     * @param  yp              DOCUMENT ME!
     * @param  coordArr        DOCUMENT ME!
     */
    private void setNewCoordinates(final int entityPosition,
            final int ringPosition,
            final float[] xp,
            final float[] yp,
            final Coordinate[] coordArr) {
        if (isValidWithThisCoordinates(entityPosition, ringPosition, coordArr)) {
            entityRingCoordArr[entityPosition][ringPosition] = coordArr;
            entityRingXArr[entityPosition][ringPosition] = xp;
            entityRingYArr[entityPosition][ringPosition] = yp;

            syncGeometry();

            updatePath();
            getViewer().showHandles(false);
            final Collection features = new ArrayList();
            features.add(getFeature());
            ((DefaultFeatureCollection)getViewer().getFeatureCollection()).fireFeaturesChanged(features);
        }
    }

    /**
     * DOCUMENT ME!
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public boolean isValid(final int entityPosition, final int ringPosition) {
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Method declaration
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringCoordArr    DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
=======
     * @param  xp  DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    private boolean isValidWithThisEntity(final int entityPosition, final Coordinate[][] ringCoordArr) {
        // polygon für die prüfung erzeugen
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringCoordArr    DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    private boolean isValidWithThisEntity(final int entityPosition, final Coordinate[][] ringCoordArr) {
        // polygon für die prüfung erzeugen
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param   coordArr  DOCUMENT ME!
     *
=======
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * @return  DOCUMENT ME!
     */
    public boolean isValidWithThisNewEntityCoordinates(final Coordinate[] coordArr) {
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param   coordArr  DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public boolean isValidWithThisNewEntityCoordinates(final Coordinate[] coordArr) {
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param   entityPosition  DOCUMENT ME!
     * @param   coordArr        DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
=======
     * @param  yp  DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public boolean isValidWithThisNewHoleCoordinates(final int entityPosition, final Coordinate[] coordArr) {
        final Coordinate[][] tempRingCoordArr = new Coordinate[entityRingCoordArr[entityPosition].length + 1][];
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   coordArr        DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public boolean isValidWithThisNewHoleCoordinates(final int entityPosition, final Coordinate[] coordArr) {
        final Coordinate[][] tempRingCoordArr = new Coordinate[entityRingCoordArr[entityPosition].length + 1][];
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     * @param   coordArr        DOCUMENT ME!
     *
=======
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     * @return  DOCUMENT ME!
     */
    public boolean isValidWithThisCoordinates(final int entityPosition,
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param   entityPosition  DOCUMENT ME!
     * @param   ringPosition    DOCUMENT ME!
     * @param   coordArr        DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public boolean isValidWithThisCoordinates(final int entityPosition,
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @return  DOCUMENT ME!
=======
     * @param  coordArr  DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public PNode getInfoNode() {
        return infoNode;
Solution content
    /**
     * DOCUMENT ME!
     *
     * @return  DOCUMENT ME!
     */
    public PNode getInfoNode() {
        return infoNode;
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param  snappable  DOCUMENT ME!
=======
     * @return  DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public void setSnappable(final boolean snappable) {
        this.snappable = snappable;
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param  snappable  DOCUMENT ME!
     */
    public void setSnappable(final boolean snappable) {
        this.snappable = snappable;
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment
Chunk
Conflicting content
    /**
     * DOCUMENT ME!
     *
<<<<<<< HEAD
     * @param       coordArr  DOCUMENT ME!
     *
     * @deprecated  DOCUMENT ME!
=======
     * @param  snappable  DOCUMENT ME!
>>>>>>> 52346b6bfcc613a3fad7464bbe2122e93c75671c
     */
    public void setCoordArr(final Coordinate[] coordArr) {
        entityRingCoordArr = new Coordinate[][][] {
Solution content
    /**
     * DOCUMENT ME!
     *
     * @param       coordArr  DOCUMENT ME!
     *
     * @deprecated  DOCUMENT ME!
     */
    public void setCoordArr(final Coordinate[] coordArr) {
        entityRingCoordArr = new Coordinate[][][] {
File
PFeature.java
Developer's decision
Version 1
Kind of conflict
Comment