return Objects.hashCode(value);
}
+ final Object writeReplace() {
+ return new YIDv1(this);
+ }
+
// Static factories & helpers
/**
return getNodeType().toString();
}
+
+ abstract Object writeReplace();
}
/**
public static NodeIdentifier create(final QName node) {
return CACHE.getUnchecked(node);
}
+
+ @Override
+ Object writeReplace() {
+ return new NIv1(this);
+ }
}
/**
private final Map<QName, Object> keyValues;
+ // Exposed for NIPv1
+ NodeIdentifierWithPredicates(final Map<QName, Object> keyValues, final QName node) {
+ super(node);
+ this.keyValues = requireNonNull(keyValues);
+ }
+
public NodeIdentifierWithPredicates(final QName node) {
super(node);
this.keyValues = ImmutableMap.of();
}
public NodeIdentifierWithPredicates(final QName node, final ImmutableOffsetMap<QName, Object> keyValues) {
- super(node);
- this.keyValues = requireNonNull(keyValues);
+ this(keyValues, node);
}
public NodeIdentifierWithPredicates(final QName node, final SharedSingletonMap<QName, Object> keyValues) {
- super(node);
- this.keyValues = requireNonNull(keyValues);
+ this(keyValues, node);
}
public NodeIdentifierWithPredicates(final QName node, final QName key, final Object value) {
public String toRelativeString(final PathArgument previous) {
return super.toRelativeString(previous) + '[' + keyValues + ']';
}
+
+ @Override
+ Object writeReplace() {
+ return new NIPv1(this);
+ }
}
/**
public String toRelativeString(final PathArgument previous) {
return super.toRelativeString(previous) + '[' + value + ']';
}
+
+ @Override
+ Object writeReplace() {
+ return new NIVv1(this);
+ }
}
/**
return -1;
}
}
+
+ private Object writeReplace() {
+ return new AIv1(this);
+ }
}
/**