You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
3.1 KiB
102 lines
3.1 KiB
/* Copyright (c) 2001-2016, The HSQL Development Group |
|
* All rights reserved. |
|
* |
|
* Redistribution and use in source and binary forms, with or without |
|
* modification, are permitted provided that the following conditions are met: |
|
* |
|
* Redistributions of source code must retain the above copyright notice, this |
|
* list of conditions and the following disclaimer. |
|
* |
|
* Redistributions in binary form must reproduce the above copyright notice, |
|
* this list of conditions and the following disclaimer in the documentation |
|
* and/or other materials provided with the distribution. |
|
* |
|
* Neither the name of the HSQL Development Group nor the names of its |
|
* contributors may be used to endorse or promote products derived from this |
|
* software without specific prior written permission. |
|
* |
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
* ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, |
|
* OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
|
*/ |
|
|
|
|
|
package com.fr.third.org.hsqldb; |
|
|
|
import com.fr.third.org.hsqldb.HsqlNameManager.HsqlName; |
|
import com.fr.third.org.hsqldb.rights.Grantee; |
|
import com.fr.third.org.hsqldb.lib.OrderedHashSet; |
|
|
|
public class ReferenceObject implements SchemaObject { |
|
|
|
HsqlName name; |
|
HsqlName target; |
|
|
|
public ReferenceObject(HsqlName name, HsqlName target) { |
|
this.name = name; |
|
this.target = target; |
|
} |
|
|
|
public int getType() { |
|
return REFERENCE; |
|
} |
|
|
|
public HsqlName getName() { |
|
return name; |
|
} |
|
|
|
public HsqlName getSchemaName() { |
|
return name.schema; |
|
} |
|
|
|
public HsqlName getCatalogName() { |
|
return name.schema.schema; |
|
} |
|
|
|
public Grantee getOwner() { |
|
return name.schema.owner; |
|
} |
|
|
|
public OrderedHashSet getReferences() { |
|
|
|
OrderedHashSet set = new OrderedHashSet(); |
|
|
|
set.add(target); |
|
|
|
return set; |
|
} |
|
|
|
public OrderedHashSet getComponents() { |
|
return null; |
|
} |
|
|
|
public void compile(Session session, SchemaObject parentObject) {} |
|
|
|
public String getSQL() { |
|
|
|
StringBuffer sb = new StringBuffer(); |
|
|
|
sb.append(Tokens.T_CREATE).append(' ').append(Tokens.T_SYNONYM); |
|
sb.append(' ').append(name.getSchemaQualifiedStatementName()); |
|
sb.append(' ').append(Tokens.T_FOR).append(' '); |
|
sb.append(target.getSchemaQualifiedStatementName()); |
|
|
|
return sb.toString(); |
|
} |
|
|
|
public long getChangeTimestamp() { |
|
return 0L; |
|
} |
|
|
|
public HsqlName getTarget() { |
|
return target; |
|
} |
|
}
|
|
|