/** * {@link #getDefinedValue(Object, String)} method instead. * @deprecated this method cannot distinguish null because: 1. property undefined for current, 2. an error, 3. a properly defined property value valorized to null. * */ public static Object getValue(final Object current, final String property) { return getDefinedValue(current, property).getValueResult().getOrElse(null); }
@Override public Object getValue(String symbol) { symbol = EvalHelper.normalizeVariableName( symbol ); if (rootObject != null) { PropertyValueResult dv = EvalHelper.getDefinedValue(rootObject, symbol); if (dv.isDefined()) { return dv.getValueResult().getOrElse(null); } } if ( variables.containsKey( symbol ) ) { return variables.get( symbol ); } if ( parentFrame != null ) { return parentFrame.getValue( symbol ); } return null; }
@Test public void testLocateInNSAliased() { final Import i = makeImport("nsA", "aliased", "m1"); final List<QName> available = Arrays.asList(new QName("nsA", "m1"), new QName("nsA", "m2"), new QName("nsB", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("nsA", "m1"), result.getOrElse(null)); }
@Test public void testNSandModelName() { final Import i = makeImport("ns1", null, "m1"); final List<QName> available = Arrays.asList(new QName("ns1", "m1"), new QName("ns2", "m2"), new QName("ns3", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("ns1", "m1"), result.getOrElse(null)); }
@Test public void testNSnoModelNameWithAlias() { final Import i = makeImport("ns1", "mymodel", null); final List<QName> available = Arrays.asList(new QName("ns1", "m1"), new QName("ns2", "m2"), new QName("ns3", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("ns1", "m1"), result.getOrElse(null)); }
@Test public void testNSonly() { final Import i = makeImport("ns1", null, null); final List<QName> available = Arrays.asList(new QName("ns1", "m1"), new QName("ns2", "m2"), new QName("ns3", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("ns1", "m1"), result.getOrElse(null)); }
@Test public void testNSandModelNameWithAlias() { final Import i = makeImport("ns1", "aliased", "m1"); final List<QName> available = Arrays.asList(new QName("ns1", "m1"), new QName("ns2", "m2"), new QName("ns3", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("ns1", "m1"), result.getOrElse(null)); }
@Test public void testNSnoModelNameDefaultWithAlias2() { final Import i = makeImport("ns1", "boh", null); final List<QName> available = Arrays.asList(new QName("ns1", "m1"), new QName("ns2", "m2"), new QName("ns3", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("ns1", "m1"), result.getOrElse(null)); }
@Test public void testLocateInNS() { final Import i = makeImport("nsA", null, "m1"); final List<QName> available = Arrays.asList(new QName("nsA", "m1"), new QName("nsA", "m2"), new QName("nsB", "m3")); final Either<String, QName> result = ImportDMNResolverUtil.resolveImportDMN(i, available, Function.identity()); assertTrue(result.isRight()); assertEquals(new QName("nsA", "m1"), result.getOrElse(null)); }