package regexgolf2.model;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
import com.google.java.contract.Ensures;
import com.google.java.contract.Requires;
public class Solution extends ObservableObject
{
private Pattern _regex = Pattern.compile("");
public Solution() { }
@Requires("regex != null")
public Solution(String regex)
{
trySetSolution(regex);
}
@Requires("regex != null")
public boolean trySetSolution(String regex)
{
if (getSolution().equals(regex))
return true;
try
{
_regex = Pattern.compile(regex);
fireObjectChangedEvent();
return true;
}
catch (PatternSyntaxException pse)
{
return false;
}
}
@Ensures("result != null")
public String getSolution()
{
return _regex.toString();
}
@Ensures("result != null")
public Pattern getPattern()
{
return _regex;
}
}