com.thaiopensource.validate.AbstractSchema Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of wicketstuff-jing Show documentation
Show all versions of wicketstuff-jing Show documentation
Jing is a validator for RELAX NG and other schema languages. This
project was taken from http://code.google.com/p/jing-trang and
mavenized for inclusion in the Wicket Stuff HTML Validator.
The code was taken from the 20091111 release.
package com.thaiopensource.validate;
import com.thaiopensource.util.PropertyMap;
import com.thaiopensource.util.PropertyId;
import com.thaiopensource.util.PropertyMapBuilder;
public abstract class AbstractSchema implements Schema {
private final PropertyMap properties;
public AbstractSchema() {
this(PropertyMap.EMPTY);
}
public AbstractSchema(PropertyMap properties) {
this.properties = properties;
}
public AbstractSchema(PropertyMap properties, PropertyId>[] supportedPropertyIds) {
this(filterProperties(properties, supportedPropertyIds));
}
public PropertyMap getProperties() {
return properties;
}
static public PropertyMap filterProperties(PropertyMap properties, PropertyId>[] supportedPropertyIds) {
PropertyMapBuilder builder = new PropertyMapBuilder();
for (int i = 0; i < supportedPropertyIds.length; i++)
copy(builder, supportedPropertyIds[i], properties);
return builder.toPropertyMap();
}
static private void copy(PropertyMapBuilder builder, PropertyId pid, PropertyMap properties) {
T value = properties.get(pid);
if (value != null)
builder.put(pid, value);
}
}