Mentions légales du service

Skip to content
Snippets Groups Projects

Added prefix to @view directive.

Merged TORNIL Florent requested to merge view-prefix into master
8 files
+ 380
49
Compare changes
  • Side-by-side
  • Inline
Files
8
package fr.lirmm.graphik.dlgp3.parser;
import javax.swing.event.EventListenerList;
import java.util.ArrayList;
import java.util.HashMap;
import javax.swing.event.EventListenerList;
public abstract class ADlgpItemFactory{
public static enum OBJECT_TYPE {
@@ -27,12 +26,10 @@ public abstract class ADlgpItemFactory{
public static InvokeManager invokeManager = new InvokeManager();
protected boolean una = false;
public ViewManager viewManager = new ViewManager();
protected boolean una = false;
protected boolean isBaseDeclared = false;
protected boolean isTopDeclared = false;
@@ -54,7 +51,7 @@ public abstract class ADlgpItemFactory{
/**
* Adds the parser listener.
*
*
* @param l the listener
*/
public void addParserListener(ParserListener l)
@@ -70,7 +67,7 @@ public abstract class ADlgpItemFactory{
else for (int i = 0; i < colonIndex; i++)
{
char ch = s.charAt(i);
if (!Character.isLetterOrDigit(ch) && ch != '.'
if (!Character.isLetterOrDigit(ch) && ch != '.'
&& ch != '+' && ch != '-') return false;
}
return true;
@@ -124,7 +121,7 @@ public abstract class ADlgpItemFactory{
/**
* Removes the parser listener.
*
*
* @param l the listener
*/
public void removeParserListener(ParserListener l)
@@ -134,7 +131,7 @@ public abstract class ADlgpItemFactory{
/**
* Gets the parser listeners.
*
*
* @return the parser listeners
*/
public ParserListener [] getParserListeners()
@@ -416,7 +413,7 @@ public abstract class ADlgpItemFactory{
{
prefixTable.put(prefix, iri);
}
}
}
protected Object getIRIFromQName(String qname) throws BuildException
{
@@ -427,13 +424,17 @@ public abstract class ADlgpItemFactory{
}
String prefix = qname.substring(0, colonIndex + 1);
if ((!this.getComputedManager().containsPrefix(prefix))
if(this.viewManager.isDefined(prefix)) {
return this.getIRI(prefix + qname.substring(colonIndex + 1));
}
if ((!this.getComputedManager().containsPrefix(prefix))
&& (!this.getPrefixManager().containsPrefix(prefix))) {
throw new BuildException("Prefix not declared: " + prefix);
}else {
if(!this.getComputedManager().containsPrefix(prefix))
return this.getIRI(this.getPrefixManager().getIRI(prefix) + qname.substring(colonIndex + 1));
else
else
return this.getComputedManager().getURI(prefix)+"#"+qname.substring(colonIndex + 1);
}
}
@@ -445,6 +446,30 @@ public abstract class ADlgpItemFactory{
return uri;
}
protected Object getURIView(String uri)
{
return uri;
}
protected void declareView(String prefix, Object ns) throws BuildException, ParseException {
String filePath = ns.toString();
if (filePath.charAt(0) == '<') {
filePath = filePath.substring(1, filePath.length() - 1);
}
this.viewManager.addPrefix(prefix, filePath);
this.buildViewDecl(prefix, filePath);
}
public ParseEvent buildViewAtom(Object predicate, ArrayList<Object> listTerm) throws ParseException {
String[] split = predicate.toString().split(":");
if(this.viewManager.isDefined(split[0] + ':', split[1], listTerm.size())) {
return this.buildAtom(predicate, listTerm);
}
return null;
}
protected class DeclareComputedEvent implements ParseEvent
{
String prefix;
@@ -556,40 +581,50 @@ public abstract class ADlgpItemFactory{
return false;
}
public Boolean isViewPredicate(String token) {
int indexOf=token.indexOf(":");
String prefix=token.substring(0, indexOf+1);
if (this.viewManager.isDefined(prefix)) {
return true;
}
else
return false;
}
public String getNameFromOperator(String op) {
switch (op) {
case "=":
return DEFAULT_BASE+"#eq";
case "+":
return DEFAULT_BASE+"#add";
case "-":
return DEFAULT_BASE+"#sub";
case "*":
return DEFAULT_BASE+"#mult";
case "/":
return DEFAULT_BASE+"#div";
case "mod":
return DEFAULT_BASE+"#mod";
case "^":
return DEFAULT_BASE+"#power";
case ">":
return DEFAULT_BASE+"#greater";
case "<":
return DEFAULT_BASE+"#less";
case ">=":
return DEFAULT_BASE+"#gteq";
case "<=":
return DEFAULT_BASE+"#leq";
default:
return DEFAULT_BASE+"#diff";
}
case "=":
return DEFAULT_BASE+"#eq";
case "+":
return DEFAULT_BASE+"#add";
case "-":
return DEFAULT_BASE+"#sub";
case "*":
return DEFAULT_BASE+"#mult";
case "/":
return DEFAULT_BASE+"#div";
case "mod":
return DEFAULT_BASE+"#mod";
case "^":
return DEFAULT_BASE+"#power";
case ">":
return DEFAULT_BASE+"#greater";
case "<":
return DEFAULT_BASE+"#less";
case ">=":
return DEFAULT_BASE+"#gteq";
case "<=":
return DEFAULT_BASE+"#leq";
default:
return DEFAULT_BASE+"#diff";
}
}
/*abstracts builds methods*/
public abstract void buildImportDecl(String url);
public abstract void buildImportDecl(String url);
public abstract void buildPrefixDecl(String prefix,Object ns) throws BuildException;
public abstract void buildComputedDecl(String prefix,Object ns) throws BuildException;
public abstract void buildViewDecl(String url) throws BuildException;
public abstract void buildViewDecl(String prefix, Object ns) throws BuildException;
public abstract void buildBaseDecl(String base) throws BuildException;
public abstract void buildTopDecl(String top,String flag) throws BuildException;
public abstract void buildUnaDecl();
Loading