/*
* Copyright 2010 Werner Guttmann
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.castor.jdo.jpa.info;
import javax.persistence.TableGenerator;
import javax.persistence.UniqueConstraint;
public class JPATableGeneratorDescriptor extends JPAKeyGeneratorDescriptor {
private String pkColumnName;
private String pkColumnValue;
private String schema;
private String table;
private JPAUniqueConstraint[] uniqueConstraints;
private String valueColumnName;
private Class<?> primaryKeyType;
public static JPATableGeneratorDescriptor extract(TableGenerator tableGenerator) {
JPATableGeneratorDescriptor descriptor = new JPATableGeneratorDescriptor();
descriptor.setAllocationSize(tableGenerator.allocationSize());
descriptor.setInitialValue(tableGenerator.initialValue());
descriptor.setName(tableGenerator.name());
descriptor.setPkColumnName(tableGenerator.pkColumnName());
descriptor.setPkColumnValue(tableGenerator.pkColumnValue());
descriptor.setSchema(tableGenerator.schema());
descriptor.setTable(tableGenerator.table());
JPAUniqueConstraint[] constraints = extractConstraints(tableGenerator);
descriptor.setUniqueConstraints(constraints);
descriptor.setValueColumnName(tableGenerator.valueColumnName());
return descriptor;
}
private static JPAUniqueConstraint[] extractConstraints(
TableGenerator tableGenerator) {
JPAUniqueConstraint[] constraints = new JPAUniqueConstraint[]{};
int i = 0;
for (UniqueConstraint uniqueConstraint : tableGenerator.uniqueConstraints()) {
constraints[i++] = JPAUniqueConstraint.extract(uniqueConstraint);
}
return constraints;
}
public String getPkColumnName() {
return pkColumnName;
}
public void setPkColumnName(String pkColumnName) {
this.pkColumnName = pkColumnName;
}
public String getPkColumnValue() {
return pkColumnValue;
}
public void setPkColumnValue(String pkColumnValue) {
this.pkColumnValue = pkColumnValue;
}
public String getSchema() {
return schema;
}
public void setSchema(String schema) {
this.schema = schema;
}
public String getTable() {
return table;
}
public void setTable(String table) {
this.table = table;
}
public JPAUniqueConstraint[] getUniqueConstraints() {
return uniqueConstraints;
}
public void setUniqueConstraints(JPAUniqueConstraint[] uniqueConstraints) {
this.uniqueConstraints = uniqueConstraints;
}
public String getValueColumnName() {
return valueColumnName;
}
public void setValueColumnName(String valueColumnName) {
this.valueColumnName = valueColumnName;
}
public Class<?> getPrimaryKeyType() {
return primaryKeyType;
}
public void setPrimaryKeyType(Class<?> primaryKeyType) {
this.primaryKeyType = primaryKeyType;
}
}