package org.korsakow.domain; import java.util.Collection; import java.util.Hashtable; import javax.xml.xpath.XPathException; import org.korsakow.domain.interf.IKeyword; import org.korsakow.domain.interf.IPattern; import org.korsakow.ide.resources.ResourceType; public class Pattern extends Media implements IPattern { String patternType; private Hashtable<String, Object> abstractProperties = new Hashtable<String, Object>(); Pattern(long id, long version) { super(id, version); } Pattern(long id, long version, String patternType, String name, Collection<IKeyword> keywords, String filename) { super(id, version, name, keywords, filename); setPatternType(patternType); setFilename(filename); } public String getType() { throw new IllegalArgumentException("not implemented"); } public Collection<String> getDynamicPropertyIds() { return abstractProperties.keySet(); } public Object getDynamicProperty(String id) { return abstractProperties.get(id); } public void setDynamicProperty(String id, Object value) { if (id == null) throw new NullPointerException(); if (value == null) abstractProperties.remove(id); else abstractProperties.put(id, value); } public Class getPropertyType(String id) { return null; } public void setPatternType(String patternType) { this.patternType = patternType; } public String getPatternType() { return patternType; } }