private boolean isTargetFieldPresent(int targetField) { for(FieldSet targetFields : fieldMapping.values()) { if(targetFields.contains(targetField)) { return true; } } return false; }
private boolean isTargetFieldPresent(int targetField, Map<Integer, FieldSet> fieldMapping) { for(FieldSet targetFields : fieldMapping.values()) { if(targetFields.contains(targetField)) { return true; } } return false; }
@Override public int getForwardingSourceField(int input, int targetField) { if (input != 0) { throw new IndexOutOfBoundsException(); } for (Map.Entry<Integer, FieldSet> e : fieldMapping.entrySet()) { if (e.getValue().contains(targetField)) { return e.getKey(); } } return -1; }
public boolean isValidUnorderedPrefix(FieldSet set) { if (set.size() > size()) { return false; } List<Integer> list = get(); for (int i = 0; i < set.size(); i++) { if (!set.contains(list.get(i))) { return false; } } return true; }
public boolean groupsFields(FieldSet fields) { if (fields.size() > this.indexes.size()) { return false; } for (int i = 0; i < fields.size(); i++) { if (!fields.contains(this.indexes.get(i))) { return false; } } return true; }
@Test public void testForwardedMixedOneString() { String[] forwardedFields = {"f2;f3;f0->f4;f4->f0"}; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 2).contains(2)); assertTrue(sp.getForwardingTargetFields(0, 3).contains(3)); assertTrue(sp.getForwardingTargetFields(0, 0).contains(4)); assertTrue(sp.getForwardingTargetFields(0, 4).contains(0)); }
@Test public void testNonForwardedNone() { String[] nonForwardedFields = { "" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, threeIntTupleType, threeIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 1).contains(1)); assertTrue(sp.getForwardingTargetFields(0, 2).contains(2)); }
@Test public void testForwardedNoArrowSpaces() { String[] forwardedFields = {" f2 ; f3 ; f0 "}; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 2).contains(2)); assertTrue(sp.getForwardingTargetFields(0, 3).contains(3)); }
@Test public void testForwardedNoArrowIndividualStrings() { String[] forwardedFields = {"f2", "f3", "f0"}; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, forwardedFields, null, null, fiveIntTupleType, fiveIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 2).contains(2)); assertTrue(sp.getForwardingTargetFields(0, 3).contains(3)); }
@Test public void testReadFieldsPojoInTuple() { String[] readFields = { "f0; f2.int1; f2.string1" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, null, readFields, pojoInTupleType, pojo2Type); FieldSet fs = sp.getReadFields(0); assertTrue(fs.size() == 3); assertTrue(fs.contains(0)); assertTrue(fs.contains(2)); assertTrue(fs.contains(5)); }
@Test public void testForwardedWithArrowIndividualStrings() { String[] forwardedFields = { "f0->f1", "f1->f2" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, forwardedFields, null, null, threeIntTupleType, fiveIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(1)); assertTrue(sp.getForwardingTargetFields(0, 1).contains(2)); }
@Test public void testForwardedRead() { String[] forwardedFields = { "f0->f0;f1->f2" }; String[] readFields = {"f0; f2"}; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, forwardedFields, null, readFields, threeIntTupleType, fiveIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 1).contains(2)); assertTrue(sp.getReadFields(0).size() == 2); assertTrue(sp.getReadFields(0).contains(0)); assertTrue(sp.getReadFields(0).contains(2)); }
@Test public void testForwardedWithArrowSpaces() { String[] forwardedFields = { " f0 -> f0 ; f1 -> f2 " }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, forwardedFields, null, null, threeIntTupleType, fiveIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 1).contains(2)); }
@Test public void testReadFieldsSpaces() { String[] readFields = { " f1 ; f2 " }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, null, readFields, threeIntTupleType, threeIntTupleType); FieldSet fs = sp.getReadFields(0); assertTrue(fs.size() == 2); assertTrue(fs.contains(2)); assertTrue(fs.contains(1)); }
@Test public void testReadFieldsIndividualStrings() { String[] readFields = { "f1", "f2" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, null, readFields, threeIntTupleType, threeIntTupleType); FieldSet fs = sp.getReadFields(0); assertTrue(fs.size() == 2); assertTrue(fs.contains(2)); assertTrue(fs.contains(1)); }
@Test public void testGetReadSet() { SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); sp.addReadFields(new FieldSet(0, 1)); assertEquals(2, sp.getReadFields(0).size()); assertTrue(sp.getReadFields(0).contains(0)); assertTrue(sp.getReadFields(0).contains(1)); sp.addReadFields(new FieldSet(3)); assertEquals(3, sp.getReadFields(0).size()); assertTrue(sp.getReadFields(0).contains(0)); assertTrue(sp.getReadFields(0).contains(1)); assertTrue(sp.getReadFields(0).contains(3)); }
@Test public void testNonForwardedPojo() { String[] nonForwardedFields = { "int1; string1" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, pojoType, pojoType); assertTrue(sp.getForwardingTargetFields(0, 0).size() == 0); assertTrue(sp.getForwardingTargetFields(0, 1).contains(1)); assertTrue(sp.getForwardingTargetFields(0, 2).contains(2)); assertTrue(sp.getForwardingTargetFields(0, 3).size() == 0); }
@Test public void testReadFieldsBasic() { String[] readFields = { "*" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, null, readFields, intType, intType); FieldSet fs = sp.getReadFields(0); assertTrue(fs.size() == 1); assertTrue(fs.contains(0)); sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, null, readFields, intType, fiveIntTupleType); fs = sp.getReadFields(0); assertTrue(fs.size() == 1); assertTrue(fs.contains(0)); }
@Test public void testNonForwardedIndividualStrings() { String[] nonForwardedFields = { "f1", "f2" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, threeIntTupleType, threeIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0); assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0); }
@Test public void testNonForwardedSpaces() { String[] nonForwardedFields = { " f1 ; f2" }; SingleInputSemanticProperties sp = new SingleInputSemanticProperties(); SemanticPropUtil.getSemanticPropsSingleFromString(sp, null, nonForwardedFields, null, threeIntTupleType, threeIntTupleType); assertTrue(sp.getForwardingTargetFields(0, 0).contains(0)); assertTrue(sp.getForwardingTargetFields(0, 1).size() == 0); assertTrue(sp.getForwardingTargetFields(0, 2).size() == 0); }