/* * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2006. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.query.algebra; public class ProjectionElem extends QueryModelNodeBase { /*-----------* * Variables * *-----------*/ private String sourceName; private String targetName; /*--------------* * Constructors * *--------------*/ public ProjectionElem() { } public ProjectionElem(String name) { this(name, name); } public ProjectionElem(String sourceName, String targetName) { setSourceName(sourceName); setTargetName(targetName); } /*---------* * Methods * *---------*/ public String getSourceName() { return sourceName; } public void setSourceName(String sourceName) { assert sourceName != null : "sourceName must not be null"; this.sourceName = sourceName; } public String getTargetName() { return targetName; } public void setTargetName(String targetName) { assert targetName != null : "targetName must not be null"; this.targetName = targetName; } public <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X { visitor.meet(this); } @Override public String getSignature() { StringBuilder sb = new StringBuilder(32); sb.append(super.getSignature()); sb.append(" \""); sb.append(sourceName); sb.append("\""); if (!sourceName.equals(targetName)) { sb.append(" AS \"").append(targetName).append("\""); } return sb.toString(); } @Override public ProjectionElem clone() { return (ProjectionElem)super.clone(); } }