package org.jmeld.util;
import javax.xml.bind.annotation.*;
import org.jmeld.util.conf.*;
import java.util.*;
@XmlAccessorType(XmlAccessType.NONE)
public class Ignore extends AbstractConfigurationElement {
static public final Ignore NULL_IGNORE = new Ignore();
@XmlElement
public boolean ignoreWhitespaceAtBegin;
@XmlElement
public boolean ignoreWhitespaceInBetween;
@XmlElement
public boolean ignoreWhitespaceAtEnd;
@XmlElement
public boolean ignoreEOL;
@XmlElement
public boolean ignoreBlankLines;
@XmlElement
public boolean ignoreCase;
@XmlElement
// Transient:
public boolean ignore;
public boolean ignoreWhitespace;
public Ignore(Ignore ignore)
{
this(ignore.ignoreWhitespaceAtBegin, ignore.ignoreWhitespaceInBetween,
ignore.ignoreWhitespaceAtEnd, ignore.ignoreEOL,
ignore.ignoreBlankLines, ignore.ignoreCase);
}
public Ignore()
{
this(false, false, false);
}
public Ignore(boolean ignoreWhitespace, boolean ignoreEOL,
boolean ignoreBlankLines)
{
this(ignoreWhitespace, ignoreWhitespace, ignoreWhitespace, ignoreEOL,
ignoreBlankLines, false);
}
public Ignore(boolean ignoreWhitespaceAtBegin,
boolean ignoreWhitespaceInBetween, boolean ignoreWhitespaceAtEnd,
boolean ignoreEOL, boolean ignoreBlankLines, boolean ignoreCase)
{
this.ignoreWhitespaceAtBegin = ignoreWhitespaceAtBegin;
this.ignoreWhitespaceInBetween = ignoreWhitespaceInBetween;
this.ignoreWhitespaceAtEnd = ignoreWhitespaceAtEnd;
this.ignoreEOL = ignoreEOL;
this.ignoreBlankLines = ignoreBlankLines;
this.ignoreCase = ignoreCase;
init();
}
@Override
public void init(AbstractConfiguration configuration)
{
super.init(configuration);
init();
}
private void init()
{
this.ignore = (ignoreWhitespaceAtBegin || ignoreWhitespaceInBetween
|| ignoreWhitespaceAtEnd || ignoreEOL || ignoreBlankLines || ignoreCase);
this.ignoreWhitespace = (ignoreWhitespaceAtBegin
|| ignoreWhitespaceInBetween || ignoreWhitespaceAtEnd);
}
@Override
public String toString()
{
return "ignore: " + (!ignore ? "nothing" : "")
+ (ignoreWhitespaceAtBegin ? "whitespace[begin] " : "")
+ (ignoreWhitespaceInBetween ? "whitespace[in between] " : "")
+ (ignoreWhitespaceAtEnd ? "whitespace[end] " : "")
+ (ignoreEOL ? "eol " : "")
+ (ignoreBlankLines ? "blanklines " : "")
+ (ignoreCase ? "case " : "");
}
}