use of org.w3._2007.rif.Formula in project hale by halestudio.
the class ModelRifToRifTranslator method createExternalPredicateFilter.
private void createExternalPredicateFilter(ModelRifMappingCondition mappingCondition, Formula filterFormula) {
// create an <External>/<content>/<Atom> element hierarchy
ExternalFORMULAType external = factory.createExternalFORMULAType();
filterFormula.setExternal(external);
ContentFORMULAType content = factory.createContentFORMULAType();
external.setContent(content);
Atom atom = factory.createAtom();
content.setAtom(atom);
Op op = factory.createOp();
ArgsUNITERMType args = factory.createArgsUNITERMType();
atom.setOp(op);
Const opConst = factory.createConst();
// $NON-NLS-1$
opConst.setType("rif:iri");
opConst.getContent().add(mappingCondition.getOperator().getRifPredicate());
op.setConst(opConst);
atom.setArgs(args);
// $NON-NLS-1$
args.setOrdered("yes");
Var var = factory.createVar();
var.getContent().add(mappingCondition.getLeft().getName());
args.getTERM().add(var);
Const argsConst = factory.createConst();
argsConst.setType(getLiteralTypeFor(mappingCondition.getLiteralClass()));
String literalValue = mappingCondition.getLiteralValue().toString();
// remove any wildcards
if (mappingCondition.getOperator().equals(ComparisonType.STRING_CONTAINS)) {
// $NON-NLS-1$ //$NON-NLS-2$
literalValue = literalValue.replaceAll("%", "");
}
argsConst.getContent().add(literalValue);
args.getTERM().add(argsConst);
// $NON-NLS-1$ //$NON-NLS-2$
log.fine("Filter is a " + mappingCondition.getOperator().toString() + " filter");
}
use of org.w3._2007.rif.Formula in project hale by halestudio.
the class ModelRifToRifTranslator method createComparativeFilter.
private void createComparativeFilter(List<Formula> list, ModelRifMappingCondition mappingCondition) {
// $NON-NLS-1$
log.fine("Creating comparative filter");
Formula filterFormula = factory.createFormula();
list.add(filterFormula);
if (mappingCondition.getOperator().equals(ComparisonType.NUMBER_EQUALS) || mappingCondition.getOperator().equals(ComparisonType.STRING_EQUALS)) {
createEqualsFilter(mappingCondition, filterFormula);
} else if (mappingCondition.getOperator().equals(ComparisonType.NUMBER_GREATER_THAN) || mappingCondition.getOperator().equals(ComparisonType.NUMBER_LESS_THAN) || mappingCondition.getOperator().equals(ComparisonType.STRING_CONTAINS)) {
createExternalPredicateFilter(mappingCondition, filterFormula);
} else {
throw new UnsupportedOperationException(// $NON-NLS-1$
"Comparison type is not supported: " + mappingCondition.getOperator().toString());
}
}
use of org.w3._2007.rif.Formula in project hale by halestudio.
the class ModelRifToRifTranslator method createEqualsFilter.
private void createEqualsFilter(ModelRifMappingCondition mappingCondition, Formula filterFormula) {
// create an <Equals> element
Equal equal = factory.createEqual();
filterFormula.setEqual(equal);
Left left = factory.createLeft();
Right right = factory.createRight();
equal.setLeft(left);
Var var = factory.createVar();
var.getContent().add(mappingCondition.getLeft().getName());
left.setVar(var);
equal.setRight(right);
Const const1 = factory.createConst();
const1.setType(getLiteralTypeFor(mappingCondition.getLiteralClass()));
right.setConst(const1);
const1.getContent().add(mappingCondition.getLiteralValue());
// $NON-NLS-1$ //$NON-NLS-2$
log.fine("Filter is a " + mappingCondition.getOperator().toString() + " filter");
}
Aggregations