// This file is part of AceWiki.
// Copyright 2008-2013, AceWiki developers.
//
// AceWiki is free software: you can redistribute it and/or modify it under the terms of the GNU
// Lesser General Public License as published by the Free Software Foundation, either version 3 of
// the License, or (at your option) any later version.
//
// AceWiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
// even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License along with AceWiki. If
// not, see http://www.gnu.org/licenses/.
package ch.uzh.ifi.attempto.acewiki.core;
import java.util.Set;
/**
* This interface represents a grammar module, i.e. a technical meta element.
*
* @author Tobias Kuhn
*/
public interface ModuleElement extends MetaOntologyElement {
public void parse() throws InvalidSyntaxException;
// TODO Content of a module is a Comment object; should be changed
public Comment getModuleContent();
/**
* @return set of modules that this module references (extends, opens, ...)
*/
public Set<ModuleElement> getReferencedModules();
/**
* @param module module element
* @return {@code true} is this module references the given module
*/
public boolean references(ModuleElement module);
public void replaceModuleContent(String newContent);
public String getDefaultContent();
public class InvalidSyntaxException extends Exception {
private static final long serialVersionUID = -6183195084383311172L;
private String text;
private Integer line, column;
public InvalidSyntaxException(String text, Integer line, Integer column) {
this.text = text;
this.line = line;
this.column = column;
}
public String getText() {
return text;
}
public Integer getLine() {
return line;
}
public Integer getColumn() {
return column;
}
}
}