Java tutorial
/** * Genji Scrum Tool and Issue Tracker * Copyright (C) 2015 Steinbeis GmbH & Co. KG Task Management Solutions * <a href="http://www.trackplus.com">Genji Scrum Tool</a> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* $Id:$ */ package com.aurel.track.persist; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import org.apache.torque.TorqueException; import org.apache.torque.util.Criteria; import org.apache.torque.util.Criteria.Criterion; import com.aurel.track.beans.TListBean; import com.aurel.track.dao.ListDAO; import com.aurel.track.fieldType.constants.BooleanFields; /** * You should add additional methods to this class to meet the * application requirements. This class will only be generated as * long as it does not already exist in the output directory. */ public class TListPeer extends com.aurel.track.persist.BaseTListPeer implements ListDAO { private static final Logger LOGGER = LogManager.getLogger(TListPeer.class); /** * Loads a list by primary key * @param objectID * @return */ @Override public TListBean loadByPrimaryKey(Integer objectID) { TList tList = null; try { tList = retrieveByPK(objectID); } catch (Exception e) { LOGGER.info("Loading of a list by primary key " + objectID + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } if (tList != null) { return tList.getBean(); } return null; } /** * Loads all lists * @return */ @Override public List<TListBean> loadAll() { Criteria criteria = new Criteria(); criteria.addAscendingOrderByColumn(NAME); try { return convertTorqueListToBeanList(doSelect(criteria)); } catch (TorqueException e) { LOGGER.error("Loading the all lists failed with " + e.getMessage()); return null; } } /** * Loads all active public lists * @deprecated * @return */ /** * Load the public lists * @return */ @Override public List<TListBean> loadPublicLists() { Criteria criteria = new Criteria(); criteria.add(DELETED, (Object) BooleanFields.TRUE_VALUE, Criteria.NOT_EQUAL); criteria.add(LISTTYPE, TListBean.LIST_TYPE.CASCADINGCHILD, Criteria.NOT_EQUAL); Criterion publicRepositoryType = criteria.getNewCriterion(REPOSITORYTYPE, new Integer(TListBean.REPOSITORY_TYPE.PUBLIC), Criteria.EQUAL); Criterion noRepositoryType = criteria.getNewCriterion(REPOSITORYTYPE, (Object) null, Criteria.ISNULL); criteria.add(publicRepositoryType.or(noRepositoryType)); criteria.addAscendingOrderByColumn(NAME); try { return convertTorqueListToBeanList(doSelect(criteria)); } catch (TorqueException e) { LOGGER.error("Loading the public lists failed with " + e.getMessage()); return null; } } /** * Loads all active project lists by person * @deprecated * @param personID * @return */ /** * Load the lists for projects * @param projectIDs * @return */ /** * Loads a list by name * @param name * @param repositoryType * @param project */ @Override public List<TListBean> loadByNameInContext(String name, Integer repositoryType, Integer project) { Criteria crit = new Criteria(); crit.add(DELETED, (Object) BooleanFields.TRUE_VALUE, Criteria.NOT_EQUAL); crit.add(NAME, name); crit.add(LISTTYPE, TListBean.LIST_TYPE.CASCADINGCHILD, Criteria.NOT_EQUAL); if (repositoryType == null || repositoryType.intValue() == TListBean.REPOSITORY_TYPE.PUBLIC) { crit.add(REPOSITORYTYPE, TListBean.REPOSITORY_TYPE.PUBLIC); } else { crit.add(REPOSITORYTYPE, TListBean.REPOSITORY_TYPE.PROJECT); crit.add(PROJECT, project); } try { return convertTorqueListToBeanList(doSelect(crit)); } catch (TorqueException e) { LOGGER.error("Verifying the uniqueness of the name " + name + " and repositoryType " + repositoryType + " and project " + project + " failed with " + e.getMessage(), e); return null; } } /** * Inserts/updates a new/existing list in the TList table * @param listBean * @return the created optionID */ @Override public Integer save(TListBean listBean) { TList tList; try { tList = BaseTList.createTList(listBean); tList.save(); return tList.getObjectID(); } catch (Exception e) { LOGGER.error("Saving of a list failed with " + e.getMessage()); return null; } } /** * Deletes a list by primary key * @param objectID */ @Override public void delete(Integer objectID) { Criteria crit = new Criteria(); crit.add(OBJECTID, objectID); try { doDelete(crit); } catch (TorqueException e) { LOGGER.error("Deleting a list by objectID " + objectID + " failed with: " + e); } } /** * Sets the deleted flag * @param fieldId */ @Override public void setDeleted(Integer objectID, boolean deactivate) { TListBean listBean = loadByPrimaryKey(objectID); if (listBean != null) { if (deactivate) { listBean.setDeleted(BooleanFields.TRUE_VALUE); } else { listBean.setDeleted(BooleanFields.FALSE_VALUE); } } try { save(listBean); } catch (Exception e) { LOGGER.error("Setting the deleted flag for the list " + objectID + " failed with: " + e); } } /** * Returns the child lists of a list * Only one level * @param listID * @return */ @Override public List<TListBean> getChildLists(Integer listID) { Criteria criteria = new Criteria(); criteria.add(PARENTLIST, listID); try { return convertTorqueListToBeanList(doSelect(criteria)); } catch (TorqueException e) { LOGGER.error("Getting the child lists for list " + listID + " failed with " + e.getMessage()); return null; } } /** * Gets a listBean with a certain parent and childnumber * @param parentListID * @param childNumber * @return */ @Override public TListBean getChildList(Integer parentListID, Integer childNumber) { List childLists = null; Criteria criteria = new Criteria(); criteria.add(PARENTLIST, parentListID); criteria.add(CHILDNUMBER, childNumber); try { childLists = doSelect(criteria); } catch (TorqueException e) { LOGGER.error("Getting the child list for parent " + parentListID + " and childnumber " + childNumber + " failed with " + e.getMessage(), e); } if (childLists == null || childLists.isEmpty()) { LOGGER.error("No child list found for parent " + parentListID + " and childnumber " + childNumber); return null; } if (childLists.size() > 1) { LOGGER.error("More than one child list found for parent " + parentListID + " and childnumber " + childNumber); } return ((TList) childLists.get(0)).getBean(); } /** * Gets the lists of specific type: single select or tree select * @param type * @return */ @Override public List<TListBean> getPublicListsOfType(Integer type) { Criteria criteria = new Criteria(); criteria.add(LISTTYPE, type); criteria.add(REPOSITORYTYPE, TListBean.REPOSITORY_TYPE.PUBLIC); criteria.add(DELETED, (Object) BooleanFields.TRUE_VALUE, Criteria.NOT_EQUAL); criteria.addAscendingOrderByColumn(NAME); try { return convertTorqueListToBeanList(doSelect(criteria)); } catch (TorqueException e) { LOGGER.error("Getting the of type " + type + " failed with " + e.getMessage()); return null; } } /** * Gets the project specific lists of specific type: single select or tree select * @param projectIDs * @param type * @return */ @Override public List<TListBean> getProjectListsOfType(List<Integer> projectIDs, Integer type) { Criteria criteria = new Criteria(); criteria.add(LISTTYPE, type); criteria.add(REPOSITORYTYPE, TListBean.REPOSITORY_TYPE.PROJECT); criteria.addIn(PROJECT, projectIDs); criteria.add(DELETED, (Object) BooleanFields.TRUE_VALUE, Criteria.NOT_EQUAL); criteria.addAscendingOrderByColumn(NAME); try { return convertTorqueListToBeanList(doSelect(criteria)); } catch (TorqueException e) { LOGGER.error("Getting the of type " + type + " failed with " + e.getMessage()); return null; } } /** * Whether any option from a list is assigned to workItem(s) * @param listID * @return */ @Override public boolean isListAssignedToWorkitem(Integer listID) { List childLists = null; Criteria criteria = new Criteria(); criteria.addJoin(TAttributeValuePeer.CUSTOMOPTIONID, TOptionPeer.OBJECTID); criteria.add(TOptionPeer.LIST, listID); try { childLists = doSelect(criteria); } catch (TorqueException e) { LOGGER.error("Is assigned to workitem for list " + listID + " failed with " + e.getMessage()); } return (childLists != null && !childLists.isEmpty()); } /** * Whether a list is assigned to config(s) * @param optionID * @return */ @Override public boolean isListAssignedToConfig(Integer listID) { List childLists = null; Criteria criteria = new Criteria(); criteria.addJoin(TOptionSettingsPeer.LIST, OBJECTID); criteria.add(TOptionSettingsPeer.LIST, listID); try { childLists = doSelect(criteria); } catch (TorqueException e) { LOGGER.error("Is assigned to field config for list " + listID + " failed with " + e.getMessage()); } return (childLists != null && !childLists.isEmpty()); } /** * Get the lists for a project * @param projectID * @param whether to include only the not deleted list * @return */ @Override public List<TListBean> getListsByProject(Integer projectID, boolean onlyNotDeleted) { Criteria criteria = new Criteria(); criteria.add(PROJECT, projectID); if (onlyNotDeleted) { criteria.add(DELETED, (Object) BooleanFields.TRUE_VALUE, Criteria.NOT_EQUAL); } criteria.add(LISTTYPE, TListBean.LIST_TYPE.CASCADINGCHILD, Criteria.NOT_EQUAL); criteria.add(REPOSITORYTYPE, TListBean.REPOSITORY_TYPE.PROJECT); criteria.addAscendingOrderByColumn(NAME); try { return convertTorqueListToBeanList(doSelect(criteria)); } catch (TorqueException e) { LOGGER.error("Getting the lists for project " + projectID + " failed with " + e.getMessage()); return null; } } /** * Converts a list of TField torque objects to a list of TFieldBean objects * @param torqueList * @return */ private List<TListBean> convertTorqueListToBeanList(List<TList> torqueList) { List<TListBean> beanList = new LinkedList<TListBean>(); if (torqueList != null) { Iterator<TList> itrTorqueList = torqueList.iterator(); while (itrTorqueList.hasNext()) { TList tList = itrTorqueList.next(); beanList.add(tList.getBean()); } } return beanList; } /**A * Load all lists using fieldIDs list * @param screenID * @return */ @Override public List<TListBean> loadAllForField(List<Integer> fieldIDs) { Criteria crit = new Criteria(); crit.addIn(BaseTFieldPeer.OBJECTID, fieldIDs); crit.addJoin(BaseTFieldPeer.OBJECTID, BaseTFieldConfigPeer.FIELDKEY); crit.addJoin(BaseTFieldConfigPeer.OBJECTID, BaseTOptionSettingsPeer.CONFIG); crit.addJoin(BaseTOptionSettingsPeer.LIST, OBJECTID); try { return convertTorqueListToBeanList(doSelect(crit)); } catch (TorqueException e) { LOGGER.error("Loading the custom fields failed with:" + e.getMessage()); return null; } } /**A * Load by parentID * @param parentID * @return */ @Override public List<TListBean> loadByParent(Integer parentID) { Criteria crit = new Criteria(); if (parentID == null) { crit.add(PARENTLIST, (Object) null, Criteria.ISNULL); } else { crit.add(PARENTLIST, parentID); } try { return convertTorqueListToBeanList(doSelect(crit)); } catch (TorqueException e) { LOGGER.error("Loading the custom fields failed with:" + e.getMessage()); return null; } } /** * Load a Bean by attribute * @param name * @param ListType * @param repositoryType * @param ChildNumber * @return */ @Override public TListBean loadByAttribute(String name, Integer listType, Integer repositoryType, Integer childNumber) { List<TListBean> list = null; Criteria crit = new Criteria(); crit.add(NAME, name); crit.add(LISTTYPE, listType); crit.add(REPOSITORYTYPE, repositoryType); crit.add(CHILDNUMBER, childNumber); crit.add(PARENTLIST, (Object) "PARENTLIST is NULL", Criteria.CUSTOM); try { list = convertTorqueListToBeanList(doSelect(crit)); if (list.size() > 0) { return list.get(0); } else return null; } catch (TorqueException e) { LOGGER.error("Loading the custom fields failed with:" + e.getMessage()); return null; } } }