/**
* Annotation.java
*
* @author Charles Groves
*/
package edu.sc.seis.sod.validator.model;
import edu.sc.seis.sod.validator.tour.MinimalVisitGuide;
import edu.sc.seis.sod.validator.tour.TourGuide;
import edu.sc.seis.sod.validator.tour.XMLWritingTourist;
public class Annotation {
public void setDescription(String description) {
desc = description;
}
public void setDeprecation(String deprecation){
this.deprecation = deprecation;
}
public void setSummary(String summary) {
this.summary = summary.replaceAll("\n\\s*", " ");
}
public void setVelocity(String vel) {
this.vel = vel;
}
public void setExample(String example) {
this.example = example;
hasExampleFromAnnotation = true;
}
public String getDescription() {
return desc;
}
public String getDeprecation() {
return deprecation;
}
public String getSummary() {
return summary;
}
public String getVelocity() {
return vel;
}
public boolean hasSummary() {
return summary != null;
}
public boolean hasDescription() {
return desc != null;
}
public String getExample() {
// System.out.println("getting example");
return getExample(DEFAULT_HTMLIZE);
}
public void setFormProvider(FormProvider fp) {
formProvider = fp;
}
public FormProvider getFormProvider() {
return formProvider;
}
public String getExample(boolean htmlize) {
if(example == null || example.equals("")) {
XMLWritingTourist tourist = new XMLWritingTourist();
TourGuide guide = new MinimalVisitGuide(formProvider.getForm());
guide.lead(tourist);
example = tourist.getResult();
}
if(htmlize) {
return getHTMLizedString(example);
}
return example;
}
public boolean hasExampleFromAnnotation() {
return hasExampleFromAnnotation;
}
public void setInclude(boolean include) {
this.include = include;
}
public boolean getInclude() {
return include;
}
public static String getHTMLizedString(String bracketedXML) {
StringBuffer buf = new StringBuffer(bracketedXML);
String newString = replaceAllInstances(buf.toString(), "<", "<");
buf = new StringBuffer(newString);
newString = replaceAllInstances(buf.toString(), ">", ">");
return newString;
}
public static String replaceAllInstances(String string,
String orig,
String replacement) {
StringBuffer buf = new StringBuffer(string);
int repIndex = buf.indexOf(orig);
while(repIndex != -1) {
buf.replace(repIndex, repIndex + 1, replacement);
repIndex = buf.indexOf(orig);
}
return buf.toString();
}
public Annotation makeCopyWithNewFormProvider(FormProvider fp) {
Annotation copy = new Annotation();
copy.summary = summary;
copy.desc = desc;
copy.deprecation = deprecation;
copy.hasExampleFromAnnotation = hasExampleFromAnnotation;
copy.example = example;
copy.include = include;
copy.vel = vel;
copy.setFormProvider(fp);
return copy;
}
private boolean hasExampleFromAnnotation = false;
private String summary, desc, example, vel = "#ingredientPage()", deprecation;
private FormProvider formProvider;
private boolean include = false;
public static boolean DEFAULT_HTMLIZE = true;
}