+ public static GroupingBuilder copyGroupingBuilder(final GroupingBuilder old) {
+ final GroupingBuilder copy = new GroupingBuilderImpl(old.getQName(),
+ old.getLine());
+ copy.setPath(old.getPath());
+ for (DataSchemaNodeBuilder child : old.getChildNodes()) {
+ copy.addChildNode(child);
+ }
+ for (GroupingBuilder grouping : old.getGroupings()) {
+ copy.addGrouping(grouping);
+ }
+ for (TypeDefinitionBuilder typedef : old.getTypedefs()) {
+ copy.addTypedef(typedef);
+ }
+ for (UsesNodeBuilder use : old.getUses()) {
+ copy.addUsesNode(use);
+ }
+ for (UnknownSchemaNodeBuilder unknown : old.getUnknownNodes()) {
+ copy.addUnknownSchemaNode(unknown);
+ }
+ copy.setDescription(old.getDescription());
+ copy.setReference(old.getReference());
+ copy.setStatus(old.getStatus());
+ return copy;
+ }
+
+ public static TypedefBuilder copyTypedefBuilder(TypedefBuilder old) {
+ final TypedefBuilder copy = new TypedefBuilder(old.getQName(),
+ old.getLine());
+ copy.setPath(old.getPath());
+ copy.setDefaultValue(old.getDefaultValue());
+ copy.setUnits(old.getUnits());
+ copy.setDescription(old.getDescription());
+ copy.setReference(old.getReference());
+ copy.setStatus(old.getStatus());
+
+ copy.setRanges(old.getRanges());
+ copy.setLengths(old.getLengths());
+ copy.setPatterns(old.getPatterns());
+ copy.setFractionDigits(old.getFractionDigits());
+
+ TypeDefinition<?> type = old.getType();
+ if(type == null) {
+ copy.setType(old.getTypedef());
+ } else {
+ copy.setType(old.getType());
+ }
+ copy.setUnits(old.getUnits());
+ for (UnknownSchemaNodeBuilder unknown : old.getUnknownNodes()) {
+ copy.addUnknownSchemaNode(unknown);
+ }
+ return copy;
+ }
+
+ public static UsesNodeBuilder copyUsesNodeBuilder(UsesNodeBuilder old) {
+ final UsesNodeBuilder copy = new UsesNodeBuilderImpl(
+ old.getGroupingPathString(), old.getLine());
+ for (AugmentationSchemaBuilder augment : old.getAugmentations()) {
+ copy.addAugment(augment);
+ }
+ copy.setAugmenting(old.isAugmenting());
+ for (SchemaNodeBuilder refineNode : old.getRefineNodes()) {
+ copy.addRefineNode(refineNode);
+ }
+ return copy;
+ }
+