use of org.whole.lang.exceptions.WholeIllegalArgumentException in project whole by wholeplatform.
the class ReusablesInterpreterVisitor method visit.
@Override
public void visit(Registry entity) {
entity.getRegistryUri().accept(this);
String registryId = getResult().wStringValue();
if (!ResourceRegistry.hasRegistry(registryId))
throw new WholeIllegalArgumentException("Undefined registry " + registryId).withSourceEntity(entity).withBindings(getBindings());
IResourceRegistry<IResource> registry = ResourceRegistry.getRegistry(registryId);
entity.getUri().accept(this);
String uri = getResult().wStringValue();
if (ResourceUtils.hasFragmentPart(uri) && registry instanceof CompoundResourceRegistry) {
CompoundResourceRegistry<IResource> compoundRegistry = (CompoundResourceRegistry<IResource>) registry;
setResult(compoundRegistry.getFunctionModel(uri, true, getBindings()));
} else
setResult(registry.getResourceModel(uri, true, getBindings()));
}
use of org.whole.lang.exceptions.WholeIllegalArgumentException in project whole by wholeplatform.
the class WorkflowsInterpreterVisitor method visit.
@Override
public void visit(CreateEntity entity) {
try {
entity.getEntityName().accept(this);
String typeName = getResultString();
EntityDescriptor<?> ed = CommonsDataTypePersistenceParser.parseEntityDescriptor(typeName);
if (ed == null)
throw new WholeIllegalArgumentException("The requested entity does not exist: " + typeName).withSourceEntity(entity).withBindings(getBindings());
IEntityRegistryProvider provider = null;
switch(entity.getRegistry().getValue().getOrdinal()) {
case RegistryEnum.DEFAULT_ord:
provider = RegistryConfigurations.DEFAULT;
break;
case RegistryEnum.RESOLVER_ord:
provider = RegistryConfigurations.RESOLVER;
break;
case RegistryEnum.ADAPTER_ord:
provider = RegistryConfigurations.ADAPTER;
break;
case RegistryEnum.STRICT_ord:
provider = RegistryConfigurations.STRICT;
break;
case RegistryEnum.CUSTOM_ord:
provider = RegistryConfigurations.CUSTOM;
break;
}
IEntityFactory ef = GenericEntityFactory.instance(provider);
IEntity model;
Arguments arguments = entity.getArguments();
if (Matcher.matchImpl(WorkflowsEntityDescriptorEnum.Assignments, arguments)) {
ITransactionScope resettableScope = BindingManagerFactory.instance.createTransactionScope();
getBindings().wEnterScope(resettableScope);
arguments.accept(this);
for (int i = 0; i < arguments.wSize(); i++) {
String name = ((Assignments) arguments).get(i).getName().getValue();
FeatureDescriptor fd = ed.getFeatureDescriptorEnum().valueOf(name);
if (fd != null)
getBindings().wDef(name, EntityUtils.convertCloneIfReparenting(getBindings().wGet(name), ed.getEntityFeatureDescriptor(fd)));
}
model = ef.create(ed, getBindings());
resettableScope.rollback();
getBindings().wExitScope();
} else if (Matcher.matchImpl(WorkflowsEntityDescriptorEnum.Expressions, arguments)) {
IEntity selfEntity = getBindings().wGet("self");
if (ed.getEntityKind().isData()) {
((Expressions) arguments).get(0).accept(this);
model = DataTypeUtils.convertCloneIfParented(getResult(), ed);
resetSelfEntity(selfEntity);
} else {
IEntity[] values = new IEntity[arguments.wSize()];
for (int i = 0; i < values.length; i++) {
((Expressions) arguments).get(i).accept(this);
values[i] = EntityUtils.convertCloneIfReparenting(getResult(), ed.getEntityFeatureDescriptor(i));
resetSelfEntity(selfEntity);
}
model = ef.create(ed, values);
}
} else
model = ef.create(ed);
setResult(entity.getModel(), model);
} catch (Exception e) {
throw IWholeRuntimeException.asWholeException(e, entity, getBindings());
}
}
use of org.whole.lang.exceptions.WholeIllegalArgumentException in project whole by wholeplatform.
the class GrammarsDefaultDataTypeParser method matches.
protected String matches(EntityDescriptor<?> ed, String value) {
Pattern pattern = grammarBasedDataTypeParser.getDataTerminal(ed).getPattern();
java.util.regex.Pattern compiledPattern = Matcher.matchImpl(GrammarsEntityDescriptorEnum.CompiledPattern, pattern) ? ((CompiledPattern) pattern).getValue() : java.util.regex.Pattern.compile(((RegExp) pattern).getValue());
if (!compiledPattern.matcher(value).matches())
throw new WholeIllegalArgumentException(WholeMessages.no_data_type);
return value;
}
use of org.whole.lang.exceptions.WholeIllegalArgumentException in project whole by wholeplatform.
the class QueriesDynamicCompilerVisitor method stringValue.
protected final String stringValue(Name entity) {
setResult(null);
entity.accept(this);
IEntity result = getResult();
if (result == null)
throw new WholeIllegalArgumentException(WholeMessages.null_value_argument).withSourceEntity(entity).withBindings(getBindings());
return result.wStringValue();
}
use of org.whole.lang.exceptions.WholeIllegalArgumentException in project whole by wholeplatform.
the class MathUtils method remainder.
public static IEntity remainder(IEntity result1, IEntity result2) {
DataKinds dataKind1 = DataTypeUtils.getUnboxedDataKind(result1);
DataKinds dataKind2 = DataTypeUtils.getUnboxedDataKind(result2);
IEntity result;
if (dataKind1.isNotAData() || dataKind2.isNotAData())
throw new WholeIllegalArgumentException(WholeMessages.no_data);
else if (dataKind1.isDouble() || dataKind2.isDouble())
result = BindingManagerFactory.instance.createValue(DataTypeUtils.toDouble(result1) % DataTypeUtils.toDouble(result2));
else if (dataKind1.isFloat() || dataKind2.isFloat())
result = BindingManagerFactory.instance.createValue(DataTypeUtils.toFloat(result1) % DataTypeUtils.toFloat(result2));
else if (dataKind1.isLong() || dataKind2.isLong())
result = BindingManagerFactory.instance.createValue(DataTypeUtils.toLong(result1) % DataTypeUtils.toLong(result2));
else
result = BindingManagerFactory.instance.createValue(DataTypeUtils.toInt(result1) % DataTypeUtils.toInt(result2));
return result;
}
Aggregations