/*
* Copyright 2004-2015 the Seasar Foundation and the Others.
*
* 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.seasar.extension.jdbc.gen.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.seasar.extension.jdbc.JdbcManager;
import org.seasar.extension.jdbc.PropertyMeta;
/**
* サービスモデルです。
*
* @author taedium
*/
public class ServiceModel extends ClassModel {
/** {@link JdbcManager}のコンポーネント名 */
protected String jdbcManagerName;
/** {@link JdbcManager}のコンポーネントをsetterメソッドでDIする場合{@code true} */
protected boolean jdbcManagerSetterNecessary;
/** エンティティクラスの単純名 */
protected String shortEntityClassName;
/** スーパークラスの単純名 */
protected String shortSuperclassName;
/** 名前モデル */
protected NamesModel namesModel;
/** 識別子のプロパティメタデータのリスト */
protected List<PropertyMeta> idPropertyMetaList = new ArrayList<PropertyMeta>();
/** バージョンを表すプロパティメタデータ */
protected PropertyMeta versionPropertyMeta;
/**
* {@link JdbcManager}のコンポーネント名を返します。
*
* @return {@link JdbcManager}のコンポーネント名
*/
public String getJdbcManagerName() {
return jdbcManagerName;
}
/**
* {@link JdbcManager}のコンポーネント名を設定します。
*
* @param jdbcManagerName
* {@link JdbcManager}のコンポーネント名
*/
public void setJdbcManagerName(String jdbcManagerName) {
this.jdbcManagerName = jdbcManagerName;
}
/**
* {@link JdbcManager}のコンポーネントをsetterメソッドでDIする場合{@code true}を返します。
*
* @return {@link JdbcManager}のコンポーネントをsetterメソッドでDIする場合{@code true}
*/
public boolean isJdbcManagerSetterNecessary() {
return jdbcManagerSetterNecessary;
}
/**
* {@link JdbcManager}のコンポーネントをsetterメソッドでDIする場合{@code true}を設定します。
*
* @param jdbcManagerSetterNecessary
* {@link JdbcManager}のコンポーネントをsetterメソッドでDIする場合{@code true}
*/
public void setJdbcManagerSetterNecessary(boolean jdbcManagerSetterNecessary) {
this.jdbcManagerSetterNecessary = jdbcManagerSetterNecessary;
}
/**
* エンティティクラスの単純名を返します。
*
* @return エンティティクラスの単純名
*/
public String getShortEntityClassName() {
return shortEntityClassName;
}
/**
* エンティティクラスの単純名を設定します。
*
* @param shortEntityClassName
* エンティティクラスの単純名
*/
public void setShortEntityClassName(String shortEntityClassName) {
this.shortEntityClassName = shortEntityClassName;
}
/**
* スーパークラスの単純名を返します。
*
* @return スーパークラスの単純名
*/
public String getShortSuperclassName() {
return shortSuperclassName;
}
/**
* スーパークラスの単純名を設定します。
*
* @param shortSuperclassName
* スーパークラスの単純名
*/
public void setShortSuperclassName(String shortSuperclassName) {
this.shortSuperclassName = shortSuperclassName;
}
/**
* 名前モデルを返します。
*
* @return 名前モデル
*/
public NamesModel getNamesModel() {
return namesModel;
}
/**
* 名前モデルを設定します。
*
* @param namesModel
* 名前モデル
*/
public void setNamesModel(NamesModel namesModel) {
this.namesModel = namesModel;
}
/**
* 識別子のプロパティメタデータを追加します。
*
* @param idPropertyMeta
* 識別子のプロパティメタデータ
*/
public void addIdPropertyMeta(PropertyMeta idPropertyMeta) {
idPropertyMetaList.add(idPropertyMeta);
}
/**
* 識別子のプロパティメタデータのリストを返します。
*
* @return 識別子のプロパティメタデータのリスト
*/
public List<PropertyMeta> getIdPropertyMetaList() {
return Collections.unmodifiableList(idPropertyMetaList);
}
/**
* バージョンを表すプロパティメタデータを返します。
*
* @return バージョンを表すプロパティメタデータ
*/
public PropertyMeta getVersionPropertyMeta() {
return versionPropertyMeta;
}
/**
* バージョンを表すプロパティメタデータを設定します。
*
* @param versionPropertyMeta
* バージョンを表すプロパティメタデータ
*/
public void setVersionPropertyMeta(PropertyMeta versionPropertyMeta) {
this.versionPropertyMeta = versionPropertyMeta;
}
}