@Override public SoyValueProvider getFieldProvider(String name) { return getSingle(name); }
@Override public boolean hasField(String name) { return getSingle(name) != null; }
@Override public SoyValue getField(String name) { return getSingle(name); }
@Override public SoyValueProvider getFieldProvider(String name) { return getSingle(name); }
@Override public boolean hasField(String name) { return getSingle(name) != null; }
@Override public SoyValue getField(String name) { return getSingle(name); }
@Override public SoyValue getItem(SoyValue key) { return getSingle(getStringKey(key)); }
@Override public boolean containsKey(SoyValue key) { return getSingle(getStringKey(key)) != null; }
@Override public SoyData getSingle(String key) { SoyData soyData = super.getSingle(key); return soyData != null && soyData != NullData.INSTANCE ? soyData : cache.getUnchecked(key); }
@Override public SoyValueProvider getItemProvider(SoyValue key) { return getSingle(getStringKey(key)); }
@Override public SoyValue get(SoyValue key) { return getSingle(getStringKey(key)); }
@Override public boolean hasItem(SoyValue key) { return getSingle(getStringKey(key)) != null; }
@Override public SoyValue getItem(SoyValue key) { return getSingle(getStringKey(key)); }
@Override public SoyValueProvider getProvider(SoyValue key) { return getSingle(getStringKey(key)); }
@Override public SoyValueProvider getItemProvider(SoyValue key) { return getSingle(getStringKey(key)); }
@Override public boolean hasItem(SoyValue key) { return getSingle(getStringKey(key)) != null; }
@Override public SoyData compute(List<SoyData> args) { SoyData arg0 = args.get(0); SoyData arg1 = args.get(1); Preconditions.checkArgument(arg0 instanceof SoyMapData, "First argument to augmentMap() function is not SoyMapData."); Preconditions.checkArgument(arg1 instanceof SoyMapData, "Second argument to augmentMap() function is not SoyMapData."); AugmentedSoyMapData augmentedMap = new AugmentedSoyMapData((SoyMapData) arg0); SoyMapData additionalMap = (SoyMapData) arg1; for (String key : additionalMap.getKeys()) { augmentedMap.putSingle(key, additionalMap.getSingle(key)); } return augmentedMap; }
/** * Merge two SoyMapData resources. If the two maps to merge contain duplicate key names, source * s2 will overwrite s1. * @param s1 1st resource map. * @param s2 2nd resource map. * @return A new SoyMapData object containing data from both source. */ public static SoyMapData mergeSoyMapData(SoyMapData s1, SoyMapData s2) { Preconditions.checkNotNull(s1); Preconditions.checkNotNull(s2); SoyMapData merged = new SoyMapData(); for (String key: s1.getKeys()) { merged.putSingle(key, s1.getSingle(key)); } for (String key: s2.getKeys()) { merged.putSingle(key, s2.getSingle(key)); } return merged; }