org.apache.cayenne.modeler.pref.DBGeneratorDefaults Maven / Gradle / Ivy
/*****************************************************************
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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
*
* https://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.apache.cayenne.modeler.pref;
import org.apache.cayenne.access.DbGenerator;
import org.apache.cayenne.pref.RenamedPreferences;
import java.util.Collection;
import java.util.prefs.Preferences;
public class DBGeneratorDefaults extends RenamedPreferences {
public static final String CREATE_FK_PROPERTY = "createFK";
public static final String CREATE_PK_PROPERTY = "createPK";
public static final String CREATE_TABLES_PROPERTY = "createTables";
public static final String DROP_PK_PROPERTY = "dropPK";
public static final String DROP_TABLES_PROPERTY = "dropTables";
public boolean createFK;
public boolean createPK;
public boolean createTables;
public boolean dropPK;
public boolean dropTables;
public DBGeneratorDefaults(Preferences pref) {
super(pref);
this.createFK = getCurrentPreference().getBoolean(CREATE_FK_PROPERTY, true);
this.createPK = getCurrentPreference().getBoolean(CREATE_PK_PROPERTY, true);
this.createTables = getCurrentPreference().getBoolean(
CREATE_TABLES_PROPERTY,
true);
this.dropPK = getCurrentPreference().getBoolean(DROP_PK_PROPERTY, false);
this.dropTables = getCurrentPreference().getBoolean(DROP_TABLES_PROPERTY, false);
}
public void setCreateFK(Boolean createFK) {
this.createFK = createFK;
getCurrentPreference().putBoolean(CREATE_FK_PROPERTY, createFK);
}
public boolean getCreateFK() {
return createFK;
}
public void setCreatePK(Boolean createPK) {
this.createPK = createPK;
getCurrentPreference().putBoolean(CREATE_PK_PROPERTY, createPK);
}
public boolean getCreatePK() {
return createPK;
}
public void setCreateTables(Boolean createTables) {
this.createTables = createTables;
getCurrentPreference().putBoolean(CREATE_TABLES_PROPERTY, createTables);
}
public boolean getCreateTables() {
return createTables;
}
public void setDropPK(Boolean dropPK) {
this.dropPK = dropPK;
getCurrentPreference().putBoolean(DROP_PK_PROPERTY, dropPK);
}
public boolean getDropPK() {
return dropPK;
}
public void setDropTables(Boolean dropTables) {
this.dropTables = dropTables;
getCurrentPreference().putBoolean(DROP_TABLES_PROPERTY, dropTables);
}
public boolean getDropTables() {
return dropTables;
}
/**
* Updates DbGenerator settings, consulting its own state.
*/
public void configureGenerator(Collection generators) {
setCreateFK(createFK);
setCreatePK(createPK);
setCreateTables(createTables);
setDropPK(dropPK);
setDropTables(dropTables);
for (DbGenerator generator : generators) {
generator.setShouldCreateFKConstraints(createFK);
generator.setShouldCreatePKSupport(createPK);
generator.setShouldCreateTables(createTables);
generator.setShouldDropPKSupport(dropPK);
generator.setShouldDropTables(dropTables);
}
}
/**
* An initialization callback.
*/
public void prePersist() {
setCreateFK(Boolean.TRUE);
setCreatePK(Boolean.TRUE);
setCreateTables(Boolean.TRUE);
setDropPK(Boolean.FALSE);
setDropTables(Boolean.FALSE);
}
}