org.glowroot.shaded.h2.schema.Constant Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2004-2013 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.glowroot.shaded.h2.schema;
import org.glowroot.shaded.h2.engine.DbObject;
import org.glowroot.shaded.h2.engine.Session;
import org.glowroot.shaded.h2.expression.ValueExpression;
import org.glowroot.shaded.h2.message.DbException;
import org.glowroot.shaded.h2.message.Trace;
import org.glowroot.shaded.h2.table.Table;
import org.glowroot.shaded.h2.value.Value;
/**
* A user-defined constant as created by the SQL statement
* CREATE CONSTANT
*/
public class Constant extends SchemaObjectBase {
private Value value;
private ValueExpression expression;
public Constant(Schema schema, int id, String name) {
initSchemaObjectBase(schema, id, name, Trace.SCHEMA);
}
@Override
public String getCreateSQLForCopy(Table table, String quotedName) {
throw DbException.throwInternalError();
}
@Override
public String getDropSQL() {
return null;
}
@Override
public String getCreateSQL() {
return "CREATE CONSTANT " + getSQL() + " VALUE " + value.getSQL();
}
@Override
public int getType() {
return DbObject.CONSTANT;
}
@Override
public void removeChildrenAndResources(Session session) {
database.removeMeta(session, getId());
invalidate();
}
@Override
public void checkRename() {
// ok
}
public void setValue(Value value) {
this.value = value;
expression = ValueExpression.get(value);
}
public ValueExpression getValue() {
return expression;
}
}