BindingImpl.java revision 22
1715N/A/*
1715N/A * Created on Aug 30, 2004
1715N/A */
1715N/Apackage impl.owls.process.binding;
1715N/A
1715N/Aimport impl.owl.WrappedIndividual;
1715N/A
1715N/Aimport org.mindswap.exceptions.NotImplementedException;
1715N/Aimport org.mindswap.owl.OWLDataValue;
1715N/Aimport org.mindswap.owl.OWLIndividual;
1715N/Aimport org.mindswap.owl.OWLValue;
1715N/Aimport org.mindswap.owls.process.Binding;
1715N/Aimport org.mindswap.owls.process.Parameter;
1715N/Aimport org.mindswap.owls.process.ParameterValue;
1715N/Aimport org.mindswap.owls.process.ValueData;
1715N/Aimport org.mindswap.owls.process.ValueOf;
1715N/Aimport org.mindswap.owls.vocabulary.OWLS;
1715N/A
1715N/A/**
1715N/A * @author Evren Sirin
1715N/A */
1715N/Apublic abstract class BindingImpl extends WrappedIndividual implements Binding {
3049N/A public BindingImpl(OWLIndividual ind) {
1715N/A super(ind);
3143N/A }
1715N/A
1715N/A public ParameterValue getValue() {
1715N/A ParameterValue value =
1715N/A (ParameterValue) getPropertyAs(OWLS.Process.valueSource, ValueOf.class);
1715N/A
3049N/A if(value == null) {
1715N/A OWLDataValue dataValue = getProperty(OWLS.Process.valueData);
1715N/A if(dataValue != null) {
1715N/A// Parameter param = getParameter();
1715N/A// OWLType paramType = (param == null) ? null : param.getParamType();
1715N/A// OWLValue owlValue = null;
1715N/A// if((paramType == null) || paramType.isDataType())
1715N/A// owlValue = dataValue;
1715N/A// else {
1715N/A// String literalValue = dataValue.getLexicalValue().trim();
1715N/A// String rdf = literalValue.indexOf("rdf:RDF") == -1
1715N/A// ? RDFUtils.addRDFTag( literalValue )
1715N/A// : literalValue;
1715N/A// owlValue = getOntology().parseLiteral( rdf );
1715N/A// }
1715N/A//
1715N/A// return getKB().createValueData(owlValue);
1971N/A return getKB().createValueData(dataValue);
1971N/A }
3049N/A }
3049N/A
1715N/A OWLIndividual owlValue = getProperty(OWLS.Process.valueObject);
1715N/A if(owlValue != null) {
1715N/A return getKB().createValueData(owlValue);
1715N/A }
1715N/A
1715N/A// if(value == null)
1715N/A// value = (ParameterValue) getProperty(OWLS.Process.valueForm);
1715N/A//
1715N/A// if(value == null)
1715N/A// value = (ParameterValue) getPropertyAs(OWLS.Process.valueType, ParameterValue.class);
1715N/A//
1715N/A// if(value == null)
1715N/A// value = (ParameterValue) getPropertyAs(OWLS.Process.valueSpecifier, ValueOf.class);
1715N/A//
1715N/A// if(value == null)
3143N/A// value = (ParameterValue) getPropertyAs(OWLS.Process.valueFunction, ValueFunction.class);
3143N/A
1715N/A
1715N/A return value;
1715N/A }
1715N/A
1715N/A /* (non-Javadoc)
1715N/A * @see org.mindswap.owls.process.Binding#setValue(org.mindswap.owls.process.ParameterValue)
1715N/A */
3049N/A public void setValue(ParameterValue paramValue) {
1715N/A if(paramValue instanceof ValueOf)
3049N/A setProperty(OWLS.Process.valueSource, (ValueOf) paramValue);
3049N/A else if (paramValue instanceof ValueData) {
3049N/A OWLValue value = ((ValueData) paramValue).getData();
3049N/A if( value.isDataValue() )
3049N/A setProperty(OWLS.Process.valueData, (OWLDataValue) value);
3049N/A else {
3049N/A// String str = ((OWLIndividual) value).toRDF(true);
1715N/A// setProperty(OWLS.Process.valueData, EntityFactory.createDataValue( str, RDF.XMLLiteral ) );
1715N/A setProperty(OWLS.Process.valueObject, (OWLIndividual) value);
3049N/A }
1715N/A }
1715N/A else
3049N/A throw new NotImplementedException("Only ValueOf parameter values are implemented!");
3049N/A }
1715N/A
1715N/A public Parameter getParameter() {
1715N/A return (Parameter) getPropertyAs(OWLS.Process.toParam, Parameter.class);
1715N/A }
1715N/A
1715N/A}
1715N/A