CPD Results

The following document contains the results of PMD's CPD 4.3.

Duplications

FileLine
org/deegree/filter/function/other/IDiv.java91
org/deegree/filter/function/other/IMod.java105
    }

    @Override
    public Function create( List<Expression> params ) {
        return new Function( NAME, params ) {

            private <T> Pair<Integer, Integer> extractValues( Expression first, Expression second, T f,
                                                              XPathEvaluator<T> xpathEvaluator )
                                    throws FilterEvaluationException {
                TypedObjectNode[] vals1 = first.evaluate( f, xpathEvaluator );
                TypedObjectNode[] vals2 = second.evaluate( f, xpathEvaluator );

                checkTwoArguments( NAME, vals1, vals2 );

                PrimitiveValue pv1;
                PrimitiveValue pv2;
                if ( vals1[0] instanceof PrimitiveValue ) {
                    pv1 = (PrimitiveValue) vals1[0];
                } else {
                    pv1 = ( (SimpleProperty) vals1[0] ).getValue();
                }
                if ( vals2[0] instanceof PrimitiveValue ) {
                    pv2 = (PrimitiveValue) vals2[0];
                } else {
                    pv2 = ( (SimpleProperty) vals2[0] ).getValue();
                }

                return new Pair<Integer, Integer>( round( Double.valueOf( pv1.getValue().toString() ) ),
                                                   round( Double.valueOf( pv2.getValue().toString() ) ) );
            }

            @Override
            public <T> TypedObjectNode[] evaluate( T obj, XPathEvaluator<T> xpathEvaluator )
                                    throws FilterEvaluationException {
                Pair<Integer, Integer> p = extractValues( getParams()[0], getParams()[1], obj, xpathEvaluator );
                return new TypedObjectNode[] { new PrimitiveValue( BigInteger.valueOf( p.first / p.second ) ) };
FileLine
org/deegree/filter/function/geometry/IsCurve.java39
org/deegree/filter/function/geometry/IsPoint.java38
org/deegree/filter/function/geometry/IsSurface.java39
    @Override
    public String getName() {
        return NAME;
    }

    @Override
    public List<ParameterType> getArgs() {
        return Collections.singletonList( GEOMETRY );
    }

    @Override
    public ParameterType getReturnType() {
        return BOOLEAN;
    }

    @Override
    public Function create( List<Expression> params ) {

        if ( params.size() != 1 ) {
            throw new IllegalArgumentException( NAME + " requires exactly one parameter." );
        }

        return new Function( NAME, params ) {
            @Override
            public <T> TypedObjectNode[] evaluate( T obj, XPathEvaluator<T> xpathEvaluator )
                                    throws FilterEvaluationException {
                TypedObjectNode[] vals = getParams()[0].evaluate( obj, xpathEvaluator );

                if ( vals.length != 1 ) {
                    throw new FilterEvaluationException( "The " + NAME + " function's first argument must evaluate"
                                                         + " to exactly one value." );
                }
                Geometry geom = FilterUtils.getGeometryValue( vals[0] );

                if ( geom == null ) {
                    throw new FilterEvaluationException( "The " + NAME + " function's first argument did"
                                                         + " not evaluate to a geometry." );
                }

                // TODO is handling of multi geometries like this ok?
                boolean result = geom instanceof Curve || geom instanceof MultiCurve<?>
FileLine
org/deegree/filter/function/other/Lower.java69
org/deegree/filter/function/other/Upper.java69
    @Override
    public String getName() {
        return NAME;
    }

    @Override
    public List<ParameterType> getArgs() {
        return Collections.singletonList( DOUBLE );
    }

    @Override
    public ParameterType getReturnType() {
        return INTEGER;
    }

    @Override
    public Function create( List<Expression> params ) {
        return new Function( NAME, params ) {
            @Override
            public TypedObjectNode[] evaluate( List<TypedObjectNode[]> args )
                                    throws FilterEvaluationException {
                TypedObjectNode[] inputs = args.get( 0 );
                List<TypedObjectNode> outputs = new ArrayList<TypedObjectNode>( inputs.length );
                for ( TypedObjectNode input : inputs ) {
                    String s = null;
                    if ( input instanceof PrimitiveValue ) {
                        s = ( (PrimitiveValue) input ).getAsText();
                    } else {
                        s = input.toString();
                    }
                    outputs.add( new PrimitiveValue( s.toLowerCase(), new PrimitiveType( STRING ) ) );