/*
* 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
*
* 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.apache.empire.struts2.websample.ws;
import org.apache.empire.commons.Options;
import org.apache.empire.data.DataType;
import org.apache.empire.data.bean.BeanDomain;
import org.apache.empire.data.bean.BeanProperty;
import org.apache.empire.struts2.websample.web.SampleApplication;
public class SampleBeanDomain extends BeanDomain
{
// Static Access
public static SampleBeanDomain getInstance()
{
return SampleApplication.getInstance().getBeanDomain();
}
/**
* Table definition for Departments
*/
public static class Departments extends SampleBeanClass
{
public final BeanProperty C_DEPARTMENT_ID;
public final BeanProperty C_NAME;
public final BeanProperty C_HEAD;
public final BeanProperty C_BUSINESS_UNIT;
public final BeanProperty C_UPDATE_TIMESTAMP;
public Departments(BeanDomain dom)
{
super("DEPARTMENTS", dom);
// ID
C_DEPARTMENT_ID = addProp("departmentId", DataType.AUTOINC, 0, true);
C_NAME = addProp("name", DataType.TEXT, 80, true);
C_HEAD = addProp("head", DataType.TEXT, 80, false);
C_BUSINESS_UNIT = addProp("businessUnit", DataType.TEXT, 4, true);
C_UPDATE_TIMESTAMP= addProp("updateTimestamp", DataType.DATETIME, 0, true);
// Primary Key
setKeyColumn(C_DEPARTMENT_ID);
// Set other Indexes
//addIndex("DEARTMENT_NAME_IDX", true, new DBColumn[] { C_NAME });
// Set timestamp column for save updates
//setTimestampColumn(C_UPDATE_TIMESTAMP);
}
}
/**
* Table definition for Persons
*/
public static class Employees extends SampleBeanClass
{
public final BeanProperty C_EMPLOYEE_ID;
public final BeanProperty C_SALUTATION;
public final BeanProperty C_FIRSTNAME;
public final BeanProperty C_LASTNAME;
public final BeanProperty C_DATE_OF_BIRTH;
public final BeanProperty C_DEPARTMENT_ID;
public final BeanProperty C_GENDER;
public final BeanProperty C_PHONE_NUMBER;
public final BeanProperty C_EMAIL;
public final BeanProperty C_RETIRED;
public final BeanProperty C_UPDATE_TIMESTAMP;
// Konstruktor f�r Tabelle
public Employees(BeanDomain dom)
{
super("EMPLOYEES", dom);
// ID
C_EMPLOYEE_ID = addProp("employeeId", DataType.AUTOINC, 0, true);
C_SALUTATION = addProp("salutation", DataType.TEXT, 20, false);
C_FIRSTNAME = addProp("firstname", DataType.TEXT, 40, true);
C_LASTNAME = addProp("lastname", DataType.TEXT, 40, true);
C_DATE_OF_BIRTH = addProp("dateOfBirth", DataType.DATE, 0, false);
C_DEPARTMENT_ID = addProp("departmentId", DataType.INTEGER, 0, true,"select");
C_GENDER = addProp("gender", DataType.TEXT, 1, false,"select");
C_PHONE_NUMBER = addProp("phoneNumber", DataType.TEXT, 40, false,"phone");
C_EMAIL = addProp("email", DataType.TEXT, 80, false);
C_RETIRED = addProp("retired", DataType.BOOL, 0, true);
C_UPDATE_TIMESTAMP= addProp("updateTimestamp", DataType.DATETIME, 0, true,"text",true);
// Primary Key
setKeyColumn(C_EMPLOYEE_ID);
Options genders = new Options();
genders.set("M", "!option.employee.gender.male");
genders.set("F", "!option.employee.gender.female");
C_GENDER.setOptions(genders);
}
}
// Tabellen
public final Departments T_DEPARTMENTS = new Departments(this);
public final Employees T_EMPLOYEES = new Employees(this);
public SampleBeanDomain()
{
super("");
}
}