@Override void lockDownRecurse() { super.lockDownRecurse(); if (this.keyField != null) this.keyField.lockDown(); if (this.valueField != null) this.valueField.lockDown(); }
@Override public Void caseMapSchemaField(MapSchemaField field) { field.getKeyField().visit(this); field.getValueField().visit(this); return null; } @Override
@Override void readAttributes(XMLStreamReader reader, int formatVersion) throws XMLStreamException { super.readAttributes(reader, formatVersion); final String typeAttr = this.getAttr(reader, XMLConstants.TYPE_ATTRIBUTE, false); if (typeAttr != null) this.setType(typeAttr); final Boolean indexedAttr = this.getBooleanAttr(reader, XMLConstants.INDEXED_ATTRIBUTE, false); if (indexedAttr != null) this.setIndexed(indexedAttr); final Long encodingSignatureAttr = this.getLongAttr(reader, XMLConstants.ENCODING_SIGNATURE_ATTRIBUTE, false); if (encodingSignatureAttr != null) this.setEncodingSignature(encodingSignatureAttr); }
/** * Get the {@link NameIndex} for this instance's {@link SchemaModel}. * * @return name index for the schema model assumed by this session */ public NameIndex getNameIndex() { return this.nameIndex != null ? this.nameIndex : new NameIndex(new SchemaModel()); }
SimpleSchemaField readSubField(XMLStreamReader reader, int formatVersion, String name) throws XMLStreamException { final SimpleSchemaField field = this.readMappedType(reader, false, SchemaModel.SIMPLE_FIELD_TAG_MAP); field.readXML(reader, formatVersion); if (field.getName() == null) field.setName(name); return field; }
@Override protected Void caseCollectionSchemaField(CollectionSchemaField field) { field.getElementField().visit(this); return null; } @Override
@Override void validate() { super.validate(); this.validateType(); }
@Override void readSubElements(XMLStreamReader reader, int formatVersion) throws XMLStreamException { this.keyField = this.readSubField(reader, formatVersion, MapField.KEY_FIELD_NAME); this.valueField = this.readSubField(reader, formatVersion, MapField.VALUE_FIELD_NAME); this.expectClose(reader); }
@Override void readSubElements(XMLStreamReader reader, int formatVersion) throws XMLStreamException { this.elementField = this.readSubField(reader, formatVersion, CollectionField.ELEMENT_FIELD_NAME); this.expectClose(reader); }
@Override public Diffs caseSetSchemaField(SetSchemaField field) { return field.differencesFrom((SetSchemaField)thatField); } @Override
@Override public Diffs caseReferenceSchemaField(ReferenceSchemaField field) { return field.differencesFrom((ReferenceSchemaField)thatField); } @Override
@Override public Diffs caseEnumSchemaField(EnumSchemaField field) { return field.differencesFrom((EnumSchemaField)thatField); } @Override
/** * Handle a {@link SimpleSchemaField}. * * <p> * The implementation in {@link SchemaFieldSwitchAdapter} delegates to * {@link #caseDefault caseDefault()}. */ @Override public R caseSimpleSchemaField(SimpleSchemaField field) { return this.caseDefault(field); }
@Override public String toString() { return super.toString() + (this.type != null ? " of type " + this.type : "") + (this.encodingSignature != 0 ? " (encoding " + this.encodingSignature + ")" : ""); }
@Override public SimpleSchemaField clone() { return (SimpleSchemaField)super.clone(); } }
@Override public ListSchemaField clone() { return (ListSchemaField)super.clone(); } }
/** * Auto-generate a random schema version based on this instance's * {@linkplain #compatibilityHash "same version" compatibility hash value}. * * @return schema version number, always greater than zero */ public int autogenerateVersion() { int version = (int)(this.compatibilityHash() >>> 33); // ensure value is non-negative if (version == 0) // handle unlikely zero case version = 1; return version; }
@Override void lockDownRecurse() { super.lockDownRecurse(); if (this.elementField != null) this.elementField.lockDown(); }