package org.pegadi.artis;
import java.util.Vector;
public class ValidationRules {
public static String getDefaultElement() {
return getDefaultElementTest();
}
public static String getDefaultElementTest() {
return "p";
}
/**
* This function returns a Vector of Strings of allowable element names.
* @todo: This function should simply get an Xpath and then lookup in the xml schema directly.
* @param paragraphNumber the paragraph
* @param currElement
* @param prevElement
* @return
*/
public static Vector getAllowedElements(int paragraphNumber, String currElement, String prevElement) {
return getAllowedElementsTest(paragraphNumber, currElement, prevElement);
}
/**
* Hardcoded testing function which validates articles of type 'article.full' defined in pegadi.xsd.
* @param paragraphNumber
* @param currElement
* @param prevElement
* @return
*/
protected static Vector getAllowedElementsTest(int paragraphNumber, String currElement, String prevElement) {
Vector v = new Vector();
if (paragraphNumber < 0) {
// what to do here?
} else if (paragraphNumber == 0) {
v.add("headline");
} else if (paragraphNumber == 1 && prevElement.equals("headline")) {
v.add("kicker");
} else if (paragraphNumber == 2 && prevElement.equals("kicker")) {
v.add("lead");
} else if (paragraphNumber == 3 && prevElement.equals("lead")) {
v.add("p");
v.add("quote");
} else if (paragraphNumber > 3) {
v.add("p");
v.add("quote");
if (!prevElement.equals("subhead") )
v.add("subhead");
}
return v;
}
public static Vector getAllowedElements(String currElement) {
return getAllowedElementsTest(currElement);
}
protected static Vector getAllowedElementsTest(String currElement) {
Vector v = new Vector();
if (currElement.equals("headline")) v.add("headline");
else if (currElement.equals("lead")) v.add("lead");
else if (currElement.equals("p")) { v.add("p"); v.add("subhead"); v.add("quote"); }
else if (currElement.equals("subhead")) { v.add("subhead"); v.add("p"); v.add("quote"); }
else if (currElement.equals("kicker")) v.add("kicker");
return v;
}
}