package com.revolsys.ui.html.serializer.key; import java.io.StringWriter; import com.revolsys.properties.BaseObjectWithProperties; import com.revolsys.record.io.format.xml.XmlWriter; import com.revolsys.util.CaseConverter; import com.revolsys.util.Property; public abstract class AbstractKeySerializer extends BaseObjectWithProperties implements KeySerializer { private String key; private String label; private String name; private String width; private String sortFieldName; public AbstractKeySerializer() { } public AbstractKeySerializer(final String name) { setName(name); } public AbstractKeySerializer(final String name, final String label) { setName(name); setLabel(label); } @Override public String getKey() { if (Property.hasValue(this.key)) { return this.key; } else { return this.name; } } @Override public String getLabel() { return this.label; } @Override public String getName() { return this.name; } @Override public String getSortFieldName() { if (Property.hasValue(this.sortFieldName)) { return this.sortFieldName; } else { return getKey(); } } @Override public String getWidth() { return this.width; } @Override public AbstractKeySerializer setKey(final String key) { this.key = key; return this; } @Override public AbstractKeySerializer setLabel(final String label) { this.label = label; return this; } public AbstractKeySerializer setName(final String name) { this.name = name; if (this.label == null && name != null) { this.label = CaseConverter.toCapitalizedWords(name); } return this; } public AbstractKeySerializer setSortFieldName(final String sortFieldName) { this.sortFieldName = sortFieldName; return this; } public AbstractKeySerializer setWidth(final String width) { this.width = width; return this; } @Override public String toString() { if (Property.hasValue(this.name)) { return this.name; } else if (Property.hasValue(this.key)) { return this.key; } else { return super.toString(); } } @Override public String toString(final Object object) { final StringWriter out = new StringWriter(); final XmlWriter xmlOut = new XmlWriter(out); serialize(xmlOut, object); xmlOut.flush(); xmlOut.close(); return out.toString(); } }