📄 classificationfilterwriter.java
字号:
/*--------------------------------------------------------------------------*
| Copyright (C) 2006 Christopher Kohlhaas |
| |
| This program is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by the |
| Free Software Foundation. A copy of the license has been included with |
| these distribution in the COPYING file, if not go to www.fsf.org . |
| |
| As a special exception, you are granted the permissions to link this |
| program with every library, which license fulfills the Open Source |
| Definition as published by the Open Source Initiative (OSI). |
*--------------------------------------------------------------------------*/
package org.rapla.storage.xml;
import java.io.IOException;
import java.util.Iterator;
import org.rapla.components.util.Assert;
import org.rapla.entities.dynamictype.Attribute;
import org.rapla.entities.dynamictype.ClassificationFilter;
import org.rapla.entities.dynamictype.ClassificationFilterRule;
import org.rapla.framework.RaplaContext;
import org.rapla.framework.RaplaException;
class ClassificationFilterWriter extends RaplaXMLWriter {
public ClassificationFilterWriter(RaplaContext sm) throws RaplaException {
super(sm);
}
public void printClassificationFilter(ClassificationFilter f) throws IOException,RaplaException {
openTag("rapla:classificationfilter");
if (isIdOnly())
att("dynamictypeidref", getId(f.getType()));
else
att("dynamictype", f.getType().getElementKey());
closeTag();
for (Iterator it = f.ruleIterator();it.hasNext();) {
printClassificationFilterRule((ClassificationFilterRule)it.next());
}
closeElement("rapla:classificationfilter");
}
private void printClassificationFilterRule(ClassificationFilterRule rule) throws IOException,RaplaException {
Attribute attribute = rule.getAttribute();
Assert.notNull( attribute );
String[] operators = rule.getOperators();
Object[] values = rule.getValues();
openTag("rapla:rule");
if (isIdOnly())
att("attributeidref", getId(attribute));
else
att("attribute", attribute.getKey());
closeTag();
for (int i=0;i<operators.length;i++) {
openTag("rapla:orCond");
att("operator", operators[i]);
closeTagOnLine();
if (values[i] != null)
printAttributeValue(attribute, values[i]);
closeElementOnLine("rapla:orCond");
println();
}
closeElement("rapla:rule");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -