*/
package org.opendaylight.yangtools.yang.data.impl.schema.transform.base;
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableMap;
+
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import com.google.common.collect.Maps;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.*;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
+import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.Status;
+import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
+import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.UsesNode;
/**
* Proxy for AugmentationSchema. Child node schemas are replaced with actual schemas from parent.
private final Set<DataSchemaNode> realChildSchemas;
private final Map<QName, DataSchemaNode> mappedChildSchemas;
- public AugmentationSchemaProxy(AugmentationSchema augmentSchema, Set<DataSchemaNode> realChildSchemas) {
+ public AugmentationSchemaProxy(final AugmentationSchema augmentSchema, final Set<DataSchemaNode> realChildSchemas) {
this.delegate = augmentSchema;
this.realChildSchemas = realChildSchemas;
- this.mappedChildSchemas = Maps.newHashMap();
+ final Map<QName, DataSchemaNode> m = new HashMap<>(realChildSchemas.size());
for (DataSchemaNode realChildSchema : realChildSchemas) {
- mappedChildSchemas.put(realChildSchema.getQName(), realChildSchema);
+ m.put(realChildSchema.getQName(), realChildSchema);
}
+
+ this.mappedChildSchemas = ImmutableMap.copyOf(m);
}
@Override
}
@Override
- public DataSchemaNode getDataChildByName(QName name) {
- if(mappedChildSchemas.containsKey(name)) {
- return mappedChildSchemas.get(name);
- }
-
- throw new IllegalArgumentException("Unknown child: " + name + " in: " + delegate);
+ public DataSchemaNode getDataChildByName(final QName name) {
+ return mappedChildSchemas.get(name);
}
@Override
- public DataSchemaNode getDataChildByName(String name) {
+ public DataSchemaNode getDataChildByName(final String name) {
// Unused
throw new UnsupportedOperationException("Unable to retrieve child node by name");
}
public Set<UsesNode> getUses() {
return delegate.getUses();
}
+
+ @Override
+ public Optional<AugmentationSchema> getOriginalDefinition() {
+ return delegate.getOriginalDefinition();
+ }
}