Package eu.scape_project.planning.model.values

Examples of eu.scape_project.planning.model.values.Value


                measurementsToEval.addAll(allMeasurementsToEval);
                for (IActionEvaluator evaluator : actionEvaluators) {
                    Map<String, Value> results = evaluator.evaluate(alternative, measurementsToEval, statusListener);
                    // apply all results
                    for (String m : results.keySet()) {
                        Value value = results.get(m);
                        if (value != null) {
                            Leaf l = measurementOfLeaf.get(m);
                            value.setScale(l.getScale());
                            l.getValues(alternative.getName()).setValue(0, value);
                        }
                    }
                    // exclude evaluated leaves from further evaluation
                    measurementsToEval.removeAll(results.keySet());
                }
            }
            // then object evaluators
            List<IObjectEvaluator> objEvaluators = miniRED.getObjectEvaluationSequence();
            for (Alternative alternative : plan.getAlternativesDefinition().getConsideredAlternatives()) {
                // .. for all alternatives
                List<SampleObject> samples = plan.getSampleRecordsDefinition().getRecords();
                for (int i = 0; i < samples.size(); i++) {
                    // we want to evaluate each property only once, by the
                    // evaluator with the highest priority
                    measurementsToEval.clear();
                    measurementsToEval.addAll(allMeasurementsToEval);

                    // prepare sample object with data
                    SampleObject sample = samples.get(i);
                    String samplePid = sample.getPid();
                    if (samplePid != null) {
                        sample.getData().setData(bytestreamManager.load(samplePid));
                    }

                    DigitalObject r = alternative.getExperiment().getResults().get(sample);
                    if ((r != null) && (r.getPid() != null)) {
                        r = digitalObjectManager.getCopyOfDataFilledDigitalObject(r);
                    }

                    try {
                        for (IObjectEvaluator evaluator : objEvaluators) {
                            // DigitalObject r2 = (r == null ? null :
                            // em.merge(r));
                            try {
                                Map<String, Value> results = evaluator.evaluate(alternative, sample, r,
                                    measurementsToEval, statusListener);
                                // apply all results
                                for (String m : results.keySet()) {
                                    Value value = results.get(m);
                                    if (value != null) {
                                        Leaf l = measurementOfLeaf.get(m);
                                        value.setScale(l.getScale());
                                        // add evaluation result for the current
                                        // result-object!
                                        l.getValues(alternative.getName()).setValue(i, value);
                                    }
                                }
View Full Code Here


            assertEquals(1, ((PositiveIntegerValue) values.getValue(1)).getValue());
        }
        lStored.initValues(alternatives, 5, true);
        for (Alternative a : alternatives) {
            for (int idx = 2; idx <= 4; idx++) {
                Value v = lStored.getValues(a.getName()).getList().get(idx);
                ((PositiveIntegerValue) v).setValue(idx+1);
            }
        }
        em.getTransaction().begin();
        em.persist(lStored);
View Full Code Here

        Measurement measurement = null;
        String measureUri = T2FlowExecutablePlanGenerator.guessMeasureUrl(measureId);
        if (measureUri != null) {
            Measure measure = cm.getMeasure(measureUri);
            if (measure != null) {
                Value v = measure.getScale().createValue();
                try {
                    v.parse(value.toString());
                    // The measurement value does not need a scale
                    v.setScale(null);
                    measurement = new Measurement();
                    measurement.setMeasureId(measureUri);
                    measurement.setValue(v);
                } catch (Exception e) {
                    // Catch parsing exceptions
View Full Code Here

        List<Leaf> leaves = plan.getTree().getRoot().getAllLeaves();
        for (Leaf leaf : leaves) {
            if (leaf.isMapped()) {
                Measurement measurement = measurements.get(leaf.getMeasure().getUri());
                if (measurement != null && measurement.getValue() != null) {
                    Value value = leaf.getScale().createValue();
                    value.setComment(measurement.getValue().getComment());
                    try {
                        value.parse(measurement.getValue().toString());
                    } catch (Exception e) {
                        // Catch parsing exceptions
                        log.debug("Error parsing measure value", e);
                    }
                    int i = samples.indexOf(sample);
View Full Code Here

            String measure = p.getValue();
            // Ignore non-measures, measures for sample object
            if (measure != null && !measure.isEmpty() && measureUris.contains(measure)) {
                Object value = outputData.get(p.getName());
                Measure m = cm.getMeasure(measure);
                Value v = m.getScale().createValue();
                v.setComment("Evaluated by " + service.getDescriptor());
                v.parse(value.toString());
                results.put(measure, v);
            }
        }

        return results;
View Full Code Here

    /**
     * @see eu.scape_project.planning.model.scales.Scale#createValue()
     */
    @Override
    public Value createValue() {
        Value v = new FloatValue();
        v.setScale(this);
        return v;
    }
View Full Code Here

    /**
     * @see eu.scape_project.planning.model.scales.Scale#createValue()
     */
    @Override
    public Value createValue() {
        Value v = new IntegerValue();
        v.setScale(this);
        return v;
    }
View Full Code Here

        params.put("PUID", puid);

        for (String measureId : measureUris) {

            Scale scale = null;
            Value value = null;

            if (MeasureConstants.BATCHPROCESSING_SUPPORTED.equals(measureId)) {
                scale = new BooleanScale();
                value = scale.createValue();
                if (!alternative.getAction().isEmulated() && alternative.getAction().isExecutable()) {
                    // this alternative is wrapped as service and therefore
                    // provides batch support
                    value.parse("Yes");
                    value.setComment("this alternative is wrapped as service and therefore provides batch support");
                }
            }

            String statement = statements.get(measureId);
            if (statement == null) {
                // this leaf cannot be evaluated by MiniREEF - skip it
                continue;
            }

            String result = null;

            // add additional params if necessary
            // ...
            ResultSet resultSet = MiniREEFResolver.getInstance().resolve(statement, params);
            listener.updateStatus("MiniREEF is attempting to evaluate " + measureId);

            if (resultSet == null) {
                // this should not happen, if MiniREEF is properly configured
                listener.updateStatus("querying MiniREEF/P2 knowledge base failed for statement: " + statement);
                // skip this leaf
                continue;
            }

            // evaluation was successful!
            if (measureId.startsWith(MeasureConstants.NUMBER_OF_TOOLS)) {
                scale = new PositiveIntegerScale();
                value = scale.createValue();

                // _measure_ is the number of tools found
                result = "" + resultSet.size();
                value.parse(result);
                // add names of tools as comment
                value.setComment(toCommaSeparated(resultSet.getColResults("swname"))
                    + "; - according to miniREEF/P2 knowledge base");
                listener.updateStatus("MiniREEF evaluated " + measureId);
            } else if (MeasureConstants.FORMAT_IPR_PROTECTION.equals(measureId)) {
                scale = new OrdinalScale();

                if (resultSet.size() > 0) {
                    // e.g. open = false, comment: "Format is encumbered by IPR"
                    String comment = "";
                    String valueStr = "";
                    for (int i = 0; i < resultSet.size(); i++) {
                        List<String> vals = resultSet.getRow(i);
                        comment = comment + vals.get(0) + "\n";
                        String type = vals.get(1);
                        if (P2_RESOURCE_FORMAT_LICENSE_RIGHTS_IPR_PROTECTED.equals(type)) {
                            valueStr = "ipr_protected";
                            comment = comment + valueStr;
                        } else if (P2_RESOURCE_FORMAT_LICENSE_RIGHTS_PROPRIETARY.equals(type)) {
                            valueStr = "proprietary";
                            comment = comment + valueStr;
                        } else if (P2_RESOURCE_FORMAT_LICENSE_RIGHTS_OPEN.equals(type)) {
                            valueStr = "open";
                            comment = comment + valueStr;
                        }
                    }
                    if (resultSet.size() > 1) {
                        comment = comment
                            + ": more than one right category applies to this format, check for reason of this conflict.\n";
                    }
                    value = scale.createValue();
                    value.parse(valueStr);
                    value.setComment(comment + ": according to MiniREEF/P2 knowledge base");
                    listener.updateStatus("MiniREEF evaluated " + measureId);
                }
                listener.updateStatus("P2 does not contain enough information to evaluate " + measureId
                    + " for this format.");
            } else if ((MeasureConstants.FORMAT_COMPLEXITY.equals(measureId))) {
                // || (MeasureConstants.FORMAT_DISCLOSURE.equals(measureId))
                // FIXME: the results from p2 have to be matched to the defined
                // measures
                // || (MeasureConstants.FORMAT_UBIQUITY.equals(measureId))
                // ||
                // (MeasureConstants.FORMAT_DOCUMENTATION_QUALITY.equals(measureId))
                // || (MeasureConstants.FORMAT_STABILITY.equals(measureId))
                // || (MeasureConstants.FORMAT_LICENSE.equals(measureId))) {

                scale = new OrdinalScale();

                if (resultSet.size() > 0) {
                    String text = resultSet.getRow(0).get(0);
                    if (text.trim().length() > 0) {
                        value = scale.createValue();
                        value.parse(text);
                        value.setComment("according to miniREEF/P2 knowledge base");
                    }
                    listener.updateStatus("MiniREEF evaluated " + measureId);
                } else {
                    listener.updateStatus("P2 does not contain enough information to evaluate " + measureId
                        + " for this format.");
View Full Code Here

                if (mode != null) {
                    if (mode.equals("equal")) {
                        Double d = imageEvaluator.evaluate(tempDir.getAbsolutePath(), tempFiles.get(sample),
                            tempFiles.get(result), "AE");
                        if (d != null && d.compareTo(Scale.MAX_VALUE) != 0) {
                            Value v = scale.createValue();
                            ((BooleanValue) v).bool(d.compareTo(0.0) == 0);
                            v.setComment("ImageMagick compare returned " + Double.toString(d) + " different pixels");
                            results.put(measureUri, v);
                        }
                    } else {
                        Double d = imageEvaluator.evaluate(tempDir.getAbsolutePath(), tempFiles.get(sample),
                            tempFiles.get(result), mode);
                        if (d != null && d.compareTo(Scale.MAX_VALUE) != 0) {
                            Value v = scale.createValue();
                            if (v instanceof FloatValue) {
                                ((FloatValue) v).setValue(d);
                                v.setComment("computed by ImageMagick compare");
                            } else if (v instanceof PositiveFloatValue) {
                                ((PositiveFloatValue) v).setValue(d);
                                v.setComment("computed by ImageMagick compare");
                            } else {
                                v.setComment("ImageMagick comparison failed - wrong Scale defined.");
                            }
                            results.put(measureUri, v);
                        }
                    }
                }
View Full Code Here

        Alternative a = new Alternative("test", "test");
        List<Alternative> alternatives = new ArrayList<Alternative>();
        alternatives.add(a);

        Map<String, Values> map = new HashMap<String, Values>();
        Value v1 = new IntegerValue();
        v1.setScale(new IntegerScale());
        Values values = new Values();
        values.add(v1);
        map.put("test", values);
        l.setValueMap(map);
        Assert.assertTrue(l.getValueMap().size() == 1);
View Full Code Here

TOP

Related Classes of eu.scape_project.planning.model.values.Value

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