From: Vance K. <va...@us...> - 2007-01-24 04:33:38
|
User: vancek Date: 07/01/23 20:33:39 Added: samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain TimecardDaoImpl.java UserDaoImpl.java Timecard.java UserRoleDaoImpl.java samples/timetracker-ejb3/core/src/test/resources log4j.xml testBeanRefFactory.xml testng.xml samples/timetracker-ejb3/mda/src/main/uml timetracker.xmi samples/timetracker-ejb3/core/src/test/java/org/andromda/timetracker/service TimeTrackingServiceTest.java UserServiceTest.java samples/timetracker-ejb3 pom.xml .project .classpath .cvsignore readme.txt samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/service UserServiceBean.java TimeTrackingServiceBean.java samples/timetracker-ejb3/app pom.xml .cvsignore samples/timetracker-ejb3/common .cvsignore pom.xml samples/timetracker-ejb3/mda pom.xml .cvsignore samples/timetracker-ejb3/app/src/main/config timetracker-ds.xml auth.conf samples/timetracker-ejb3/common/src/main/java/org/andromda/timetracker/vo UserVOComparator.java samples/timetracker-ejb3/client .cvsignore pom.xml samples/timetracker-ejb3/app/src/main/application/META-INF timetracker-login-config.xml jboss-app.xml timetracker-login-service.xml samples/timetracker-ejb3/web/src/main/java/org/andromda/timetracker/web/timecardsearch SearchControllerImpl.java samples/timetracker-ejb3/client/src/main/java/org/andromda/timetracker/client Client.java samples/timetracker-ejb3/mda/src/main/config/mappings WebMergeMappings.xml samples/timetracker-ejb3/core .cvsignore pom.xml samples/timetracker-ejb3/mda/src/main/config andromda.xml samples/timetracker-ejb3/web/src/main/css custom.css samples/timetracker-ejb3/web pom.xml .cvsignore samples/timetracker-ejb3/web/src/main/properties messages.properties Log: sample timetracker using EJB3 and JSF cartridges Revision Changes Path 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/TimecardDaoImpl.java Index: TimecardDaoImpl.java =================================================================== // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package org.andromda.timetracker.domain; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hibernate.Criteria; import org.hibernate.FetchMode; import org.hibernate.Session; import org.hibernate.criterion.Restrictions; /** * @see org.andromda.timetracker.domain.Timecard */ public class TimecardDaoImpl extends org.andromda.timetracker.domain.TimecardDaoBase { private Log logger = LogFactory.getLog(TimecardDaoImpl.class); /** * @see org.andromda.timetracker.domain.TimecardDao#findByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO) */ protected java.util.List handleFindByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria) { // Create the timecard criteria Criteria timecardCriteria = hibernateSession.createCriteria(Timecard.class); timecardCriteria.setFetchMode("submitter", FetchMode.JOIN); timecardCriteria.setFetchMode("approver", FetchMode.JOIN); // Add sumitter criteria if (criteria.getSubmitterId() != null) { timecardCriteria.createCriteria("submitter").add(Restrictions.idEq(criteria.getSubmitterId())); } // Add approver criteria if (criteria.getApproverId() != null) { timecardCriteria.createCriteria("approver").add(Restrictions.idEq(criteria.getApproverId())); } // Add status criteria if (criteria.getStatus() != null) { timecardCriteria.add(Restrictions.eq("status", criteria.getStatus())); } // Add startDateMin criteria if (criteria.getStartDateMin() != null) { timecardCriteria.add(Restrictions.ge("startDate", criteria.getStartDateMin())); } // Add startDateMax criteria if (criteria.getStartDateMax() != null) { timecardCriteria.add(Restrictions.le("startDate", criteria.getStartDateMax())); } List timecards = timecardCriteria.list(); if (logger.isDebugEnabled()) { logger.debug(timecards.size() + " timecards found"); } return timecards; } /** * @see org.andromda.timetracker.domain.TimecardDao#toTimecardSummaryVO(org.andromda.timetracker.domain.Timecard, org.andromda.timetracker.vo.TimecardSummaryVO) */ public void toTimecardSummaryVO( org.andromda.timetracker.domain.Timecard sourceEntity, org.andromda.timetracker.vo.TimecardSummaryVO targetVO) { // ${toDoTag} verify behavior of toTimecardSummaryVO super.toTimecardSummaryVO(sourceEntity, targetVO); // add the related entities targetVO.setSubmitterName(sourceEntity.getSubmitter().getUsername()); if (sourceEntity.getApprover() != null) { targetVO.setApproverName(sourceEntity.getApprover().getUsername()); } } /** * @see org.andromda.timetracker.domain.TimecardDao#toTimecardSummaryVO(org.andromda.timetracker.domain.Timecard) */ public org.andromda.timetracker.vo.TimecardSummaryVO toTimecardSummaryVO(final org.andromda.timetracker.domain.Timecard entity) { // ${toDoTag} verify behavior of toTimecardSummaryVO return super.toTimecardSummaryVO(entity); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.Timecard loadTimecardFromTimecardSummaryVO(org.andromda.timetracker.vo.TimecardSummaryVO timecardSummaryVO) { // ${toDoTag} implement loadTimecardFromTimecardSummaryVO throw new java.lang.UnsupportedOperationException("org.andromda.timetracker.domain.loadTimecardFromTimecardSummaryVO(org.andromda.timetracker.vo.TimecardSummaryVO) not yet implemented."); /* A typical implementation looks like this: org.andromda.timetracker.domain.Timecard timecard = this.load(timecardSummaryVO.getId()); if (timecard == null) { timecard = org.andromda.timetracker.domain.Timecard.Factory.newInstance(); } return timecard; */ } /** * @see org.andromda.timetracker.domain.TimecardDao#timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO) */ public org.andromda.timetracker.domain.Timecard timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO timecardSummaryVO) { // ${toDoTag} verify behavior of timecardSummaryVOToEntity org.andromda.timetracker.domain.Timecard entity = this.loadTimecardFromTimecardSummaryVO(timecardSummaryVO); this.timecardSummaryVOToEntity(timecardSummaryVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.TimecardDao#timecardSummaryVOToEntity(org.andromda.timetracker.vo.TimecardSummaryVO, org.andromda.timetracker.domain.Timecard) */ public void timecardSummaryVOToEntity( org.andromda.timetracker.vo.TimecardSummaryVO sourceVO, org.andromda.timetracker.domain.Timecard targetEntity, boolean copyIfNull) { // ${toDoTag} verify behavior of timecardSummaryVOToEntity super.timecardSummaryVOToEntity(sourceVO, targetEntity, copyIfNull); } } 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/UserDaoImpl.java Index: UserDaoImpl.java =================================================================== // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package org.andromda.timetracker.domain; import java.util.Collection; import java.util.Set; import java.util.TreeSet; import org.andromda.timetracker.vo.UserDetailsVO; import org.andromda.timetracker.vo.UserRoleVO; /** * @see org.andromda.timetracker.domain.User */ public class UserDaoImpl extends org.andromda.timetracker.domain.UserDaoBase { /** * @see org.andromda.timetracker.domain.UserDao#toUserVO(org.andromda.timetracker.domain.User, org.andromda.timetracker.vo.UserVO) */ public void toUserVO( org.andromda.timetracker.domain.User sourceEntity, org.andromda.timetracker.vo.UserVO targetVO) { // ${toDoTag} verify behavior of toUserVO super.toUserVO(sourceEntity, targetVO); // WARNING! No conversion for targetVO.id (can't convert sourceEntity.getId():java.lang.Long to java.lang.Long // WARNING! No conversion for targetVO.username (can't convert sourceEntity.getUsername():java.lang.String to java.lang.String // WARNING! No conversion for targetVO.firstName (can't convert sourceEntity.getFirstName():java.lang.String to java.lang.String // WARNING! No conversion for targetVO.lastName (can't convert sourceEntity.getLastName():java.lang.String to java.lang.String } /** * @see org.andromda.timetracker.domain.UserDao#toUserVO(org.andromda.timetracker.domain.User) */ public org.andromda.timetracker.vo.UserVO toUserVO(final org.andromda.timetracker.domain.User entity) { // ${toDoTag} verify behavior of toUserVO return super.toUserVO(entity); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.User loadUserFromUserVO(org.andromda.timetracker.vo.UserVO userVO) { // ${toDoTag} implement loadUserFromUserVO throw new java.lang.UnsupportedOperationException("org.andromda.timetracker.domain.loadUserFromUserVO(org.andromda.timetracker.vo.UserVO) not yet implemented."); /* A typical implementation looks like this: org.andromda.timetracker.domain.User user = this.load(userVO.getId()); if (user == null) { user = org.andromda.timetracker.domain.User.Factory.newInstance(); } return user; */ } /** * @see org.andromda.timetracker.domain.UserDao#userVOToEntity(org.andromda.timetracker.vo.UserVO) */ public org.andromda.timetracker.domain.User userVOToEntity(org.andromda.timetracker.vo.UserVO userVO) { // ${toDoTag} verify behavior of userVOToEntity org.andromda.timetracker.domain.User entity = this.loadUserFromUserVO(userVO); this.userVOToEntity(userVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.UserDao#userVOToEntity(org.andromda.timetracker.vo.UserVO, org.andromda.timetracker.domain.User) */ public void userVOToEntity( org.andromda.timetracker.vo.UserVO sourceVO, org.andromda.timetracker.domain.User targetEntity, boolean copyIfNull) { // ${toDoTag} verify behavior of userVOToEntity super.userVOToEntity(sourceVO, targetEntity, copyIfNull); // No conversion for targetEntity.username (can't convert sourceVO.getUsername():java.lang.String to java.lang.String // No conversion for targetEntity.firstName (can't convert sourceVO.getFirstName():java.lang.String to java.lang.String // No conversion for targetEntity.lastName (can't convert sourceVO.getLastName():java.lang.String to java.lang.String } /** * @see org.andromda.timetracker.domain.UserDao#toUserDetailsVO(org.andromda.timetracker.domain.User, org.andromda.timetracker.vo.UserDetailsVO) */ public void toUserDetailsVO( org.andromda.timetracker.domain.User sourceEntity, org.andromda.timetracker.vo.UserDetailsVO targetVO) { super.toUserDetailsVO(sourceEntity, targetVO); // Convert roles Collection srcRoles = sourceEntity.getRoles(); UserRoleVO[] targetRoles = new UserRoleVO[srcRoles.size()]; int i=0; for (Object srcRole : srcRoles) { targetRoles[i] = getUserRoleDao().toUserRoleVO((UserRole)srcRole); i++; } targetVO.setRoles(targetRoles); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.User loadUserFromUserDetailsVO(org.andromda.timetracker.vo.UserDetailsVO userDetailsVO) { org.andromda.timetracker.domain.User user = null; if (userDetailsVO != null && userDetailsVO.getId() != null) { try { user = this.load(userDetailsVO.getId()); } catch (UserDaoException e) { // user id no set - OK to ignore } } if (user == null) { user = new User(); } return user; } /** * @see org.andromda.timetracker.domain.UserDao#userDetailsVOToEntity(org.andromda.timetracker.vo.UserDetailsVO) */ public User userDetailsVOToEntity(UserDetailsVO userDetailsVO) { org.andromda.timetracker.domain.User entity = this.loadUserFromUserDetailsVO(userDetailsVO); this.userDetailsVOToEntity(userDetailsVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.UserDao#userDetailsVOToEntity(org.andromda.timetracker.vo.UserDetailsVO, org.andromda.timetracker.domain.User) */ public void userDetailsVOToEntity( org.andromda.timetracker.vo.UserDetailsVO sourceVO, org.andromda.timetracker.domain.User targetEntity, boolean copyIfNull) { // @todo verify behavior of userDetailsVOToEntity super.userDetailsVOToEntity(sourceVO, targetEntity, copyIfNull); if (sourceVO.getRoles().length > 0) { Set<UserRole> roles = new TreeSet<UserRole>(); for (UserRoleVO userRoleVO : sourceVO.getRoles()) { System.out.println(" user role : " + userRoleVO.getRole()); roles.add(this.getUserRoleDao().userRoleVOToEntity(userRoleVO)); } targetEntity.setRoles(roles); } } } 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/Timecard.java Index: Timecard.java =================================================================== // license-header java merge-point // // Attention: Generated code! Do not modify by hand! // Generated by: Entity.vsl in andromda-ejb3-cartridge. // package org.andromda.timetracker.domain; /** * Autogenerated POJO EJB3 implementation class for Timecard. * * Add any manual implementation within this class. This class will NOT * be overwritten with incremental changes. * * * */ @javax.persistence.Entity // Uncomment to enable seam component name // @org.jboss.seam.annotations.Name("timecard") // Uncomment to set specific component scope type //@org.jboss.seam.annotations.Scope(org.jboss.seam.ScopeType.CONVERSATION) @javax.persistence.Table(name = "TIMECARD") // Uncomment to enable entity listener for Timecard // @javax.persistence.EntityListeners({org.andromda.timetracker.domain.TimecardListener.class}) // Uncomment to enable caching for Timecard // @org.hibernate.annotations.Cache(usage = org.hibernate.annotations.CacheConcurrencyStrategy.TRANSACTIONAL) @javax.persistence.NamedQuery(name = "Timecard.findAll", query = "select timecard from Timecard AS timecard") public class Timecard extends org.andromda.timetracker.domain.TimecardEmbeddable implements java.io.Serializable, Comparable<Timecard> { /** * The serial version UID of this class required for serialization. */ private static final long serialVersionUID = -2301368423761775897L; // --------------- constructors ----------------- /** * Default Timecard constructor */ public Timecard() { super(); } /** * Implementation for the constructor with all POJO attributes except auto incremented identifiers. * This method sets all POJO fields defined in this/super class to the * values provided by the parameters. * */ public Timecard(org.andromda.timetracker.domain.TimecardStatus status, java.util.Date startDate, java.lang.String comments) { super(status, startDate, comments); } /** * Constructor with all POJO attribute values and CMR relations. * * @param status Value for the status property * @param startDate Value for the startDate property * @param comments Value for the comments property * @param submitter Value for the submitter relation role * @param approver Value for the approver relation role */ public Timecard(org.andromda.timetracker.domain.TimecardStatus status, java.util.Date startDate, java.lang.String comments, org.andromda.timetracker.domain.User submitter, org.andromda.timetracker.domain.User approver) { super(status, startDate, comments, submitter, approver); } // -------------- Entity Methods ----------------- /** * */ @javax.persistence.Transient public static java.util.List findByCriteria(org.andromda.timetracker.vo.TimecardSearchCriteriaVO criteria) { // TODO put your implementation here. return null; } // --------------- Lifecycle callbacks ----------------- /** * @see java.lang.Comparable#compareTo(T) */ public int compareTo(Timecard o) { int cmp = 0; if (this.getId() != null) { cmp = this.getId().compareTo(o.getId()); } else { if (this.getStatus() != null) { cmp = (cmp != 0 ? cmp : this.getStatus().compareTo(o.getStatus())); } if (this.getStartDate() != null) { cmp = (cmp != 0 ? cmp : this.getStartDate().compareTo(o.getStartDate())); } if (this.getComments() != null) { cmp = (cmp != 0 ? cmp : this.getComments().compareTo(o.getComments())); } } return cmp; } } 1.1 plugins/samples/timetracker-ejb3/core/src/main/java/org/andromda/timetracker/domain/UserRoleDaoImpl.java Index: UserRoleDaoImpl.java =================================================================== // license-header java merge-point /** * This is only generated once! It will never be overwritten. * You can (and have to!) safely modify it by hand. */ package org.andromda.timetracker.domain; /** * @see org.andromda.timetracker.domain.UserRole */ public class UserRoleDaoImpl extends org.andromda.timetracker.domain.UserRoleDaoBase { /** * @see org.andromda.timetracker.domain.UserRoleDao#toUserRoleVO(org.andromda.timetracker.domain.UserRole, org.andromda.timetracker.vo.UserRoleVO) */ public void toUserRoleVO( org.andromda.timetracker.domain.UserRole sourceEntity, org.andromda.timetracker.vo.UserRoleVO targetVO) { // ${toDoTag} verify behavior of toUserRoleVO super.toUserRoleVO(sourceEntity, targetVO); } /** * @see org.andromda.timetracker.domain.UserRoleDao#toUserRoleVO(org.andromda.timetracker.domain.UserRole) */ public org.andromda.timetracker.vo.UserRoleVO toUserRoleVO(final org.andromda.timetracker.domain.UserRole entity) { // ${toDoTag} verify behavior of toUserRoleVO return super.toUserRoleVO(entity); } /** * Retrieves the entity object that is associated with the specified value object * from the object store. If no such entity object exists in the object store, * a new, blank entity is created */ private org.andromda.timetracker.domain.UserRole loadUserRoleFromUserRoleVO(org.andromda.timetracker.vo.UserRoleVO userRoleVO) { org.andromda.timetracker.domain.UserRole userRole = null; if (userRoleVO != null && userRoleVO.getId() != null) { try { userRole = this.load(userRoleVO.getId()); } catch (UserRoleDaoException e) { // ok to continue } } if (userRole == null) { userRole = new UserRole(); } return userRole; } /** * @see org.andromda.timetracker.domain.UserRoleDao#userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO) */ public org.andromda.timetracker.domain.UserRole userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO userRoleVO) { // ${toDoTag} verify behavior of userRoleVOToEntity org.andromda.timetracker.domain.UserRole entity = this.loadUserRoleFromUserRoleVO(userRoleVO); this.userRoleVOToEntity(userRoleVO, entity, true); return entity; } /** * @see org.andromda.timetracker.domain.UserRoleDao#userRoleVOToEntity(org.andromda.timetracker.vo.UserRoleVO, org.andromda.timetracker.domain.UserRole) */ public void userRoleVOToEntity( org.andromda.timetracker.vo.UserRoleVO sourceVO, org.andromda.timetracker.domain.UserRole targetEntity, boolean copyIfNull) { // ${toDoTag} verify behavior of userRoleVOToEntity super.userRoleVOToEntity(sourceVO, targetEntity, copyIfNull); } } 1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/log4j.xml Index: log4j.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <!-- ****************************************************************************** * Log4j Configuration * * Logging levels (higest to lowest): * off, fatal, error, warn, info, debug, all * A logging request is enabled if its level is * higher than or equal to the level of its logger. ****************************************************************************** --> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> <!-- ******************************************************************* --> <!-- ConsoleAppender --> <!-- ******************************************************************* --> <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender"> <param name="Threshold" value="warn"/> <layout class="org.apache.log4j.PatternLayout"> <!-- Conversion pattern: Message\n --> <param name="ConversionPattern" value="%m%n"/> </layout> </appender> <!-- ******************************************************************* --> <!-- FileAppender --> <!-- ******************************************************************* --> <appender name="FileAppender" class="org.apache.log4j.RollingFileAppender"> <param name="File" value="timetracker-test.log"/> <param name="Append" value="false"/> <layout class="org.apache.log4j.PatternLayout"> <!-- Conversion pattern: Time Priority - Message\n --> <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p - %m%n"/> <!-- Alternate Conversion pattern: Time Priority - Class[Line] - Message\n --> <!-- <param name="ConversionPattern" value="%d{HH:mm:ss.SSS} %-5p %50C[%4L] - %m%n"/> --> </layout> </appender> <!-- ******************************************************************* --> <!-- Low Level Loggers --> <!-- ******************************************************************* --> <!-- Log hibernate messages --> <logger name="org.hibernate"> <level value="warn"/> </logger> <!-- Log HQL query parser activity --> <logger name="org.hibernate.hql.ast.AST"> <level value="warn"/> </logger> <!-- Log just the SQL --> <logger name="org.hibernate.SQL"> <level value="debug"/> </logger> <!-- Log JDBC bind parameters --> <logger name="org.hibernate.type"> <level value="debug"/> </logger> <!-- Log schema export/update --> <logger name="org.hibernate.tool.hbm2ddl"> <level value="warn"/> </logger> <!-- Log HQL parse trees --> <logger name="org.hibernate.hql"> <level value="warn"/> </logger> <!-- Log cache activity --> <logger name="org.hibernate.cache"> <level value="warn"/> </logger> <!-- Log transaction activity --> <logger name="org.hibernate.transaction"> <level value="warn"/> </logger> <!-- Log JDBC resource acquisition --> <logger name="org.hibernate.jdbc"> <level value="warn"/> </logger> <!-- Track down connection leakages when using DriverManagerConnectionProvider --> <logger name="org.hibernate.connection.DriverManagerConnectionProvider"> <level value="warn"/> </logger> <!-- Log TimeTracker messages --> <logger name="org.andromda.timetracker"> <level value="debug"/> </logger> <!-- ******************************************************************* --> <!-- Root Logger --> <!-- ******************************************************************* --> <!-- Allow warning and higher messages from everyone to go to console and file --> <root> <level value="warn"/> <appender-ref ref="ConsoleAppender"/> <appender-ref ref="FileAppender"/> </root> </log4j:configuration> 1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/testBeanRefFactory.xml Index: testBeanRefFactory.xml =================================================================== <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean id="beanRefFactory" class="org.springframework.context.support.ClassPathXmlApplicationContext"> <constructor-arg> <list> <value>applicationContext.xml</value> <value>applicationContext-localDataSource.xml</value> <!-- beanRefFactory merge-point --> </list> </constructor-arg> </bean> </beans> 1.1 plugins/samples/timetracker-ejb3/core/src/test/resources/testng.xml Index: testng.xml =================================================================== <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <suite name="TimeTracker Test Suite" verbose="1"> <test name="Services Test"> <classes> <!-- <class name="org.andromda.timetracker.service.UserServiceTest" /> <class name="org.andromda.timetracker.service.TimeTrackingServiceTest" /> --> </classes> </test> </suite> 1.1 plugins/samples/timetracker-ejb3/mda/src/main/uml/timetracker.xmi Index: timetracker.xmi =================================================================== <?xml version='1.0' encoding='UTF-8'?> <!-- <!DOCTYPE XMI SYSTEM "uml14xmi12.dtd"> --> <XMI xmi.version='1.2' timestamp='Wed Jan 24 13:07:05 GMT+08:00 2007' xmlns:UML='omg.org/UML/1.4'> <XMI.header> <XMI.documentation> <XMI.exporter>MagicDraw UML</XMI.exporter> <XMI.exporterVersion>9.5</XMI.exporterVersion> </XMI.documentation> <XMI.metamodel xmi.name='UML' xmi.version='1.4'/> </XMI.header> <XMI.content> <UML:Model xmi.id='eee_1045467100313_135436_1' name='Data' isRoot='false' isLeaf='false' isAbstract='false'> <UML:ModelElement.comment> <UML:Comment xmi.id='_24400562_1092013275546_280654_0' name='Author:Administrator. Created:8/8/04 8:58 PM. Title:. Comment:. '/> </UML:ModelElement.comment> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <ignoredInModule xmi.value='true'/> </XMI.extension> <UML:Namespace.ownedElement> <UML:Package xmi.id='eee_1045467100313_365297_7' name='Component View' isRoot='false' isLeaf='false' isAbstract='false'/> <UML:Package href='andromda-profile-3.3-SNAPSHOT.xml.zip|_8a70287_1078771814628_224704_589'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='::org.andromda.profile'/> </XMI.extension> </UML:Package> <UML:Package xmi.id='_9_0_2_12ab03bf_1125323139546_169312_1' name='Data types' isRoot='false' isLeaf='false' isAbstract='false'/> <UML:Model xmi.id='_9_5_1_8c50279_1169284943593_621983_0' name='TimeTracker' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Package xmi.id='_9_5_1_8c50279_1169285020671_442512_1' name='org.andromda.timetracker' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Package xmi.id='_9_5_1_8c50279_1169285069296_549214_2' name='vo' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Class xmi.id='_9_5_1_8c50279_1169285116546_935256_4' name='UserVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.comment> <UML:Comment xmi.id='_9_5_1_8c50279_1169285297375_133209_28' name='This class represents a value object that carries information about a TimeTracker user.'/> </UML:ModelElement.comment> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285180765_139981_20' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_276612_832'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285257984_178002_22' name='username' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_386979_833'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285269828_95519_24' name='firstName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_902312_834'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169285277593_284551_26' name='lastName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169285116546_935256_4'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_86443_835'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169285311500_838087_119' name='UserVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/> <UML:Class xmi.id='_9_5_1_8c50279_1169364049578_435363_114' name='TimecardSummaryVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364076812_527125_130' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364079546_909254_132' name='status' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114' type='_9_5_1_8c50279_1169363855234_636472_0'/> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364086890_611960_134' name='startDate' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364092609_869542_136' name='comments' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364096843_508570_138' name='submitterName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364104015_862185_140' name='approverName' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364049578_435363_114'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169364119234_263956_142' name='TimecardSummaryVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/> <UML:Class xmi.id='_9_5_1_8c50279_1169364152171_496868_160' name='TimecardSearchCriteriaVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364170015_93052_176' name='submitterId' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_707081_186'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_190054_187' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364181265_854013_178' name='approverId' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_218543_189'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_666772_190' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364190437_16846_180' name='status' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160' type='_9_5_1_8c50279_1169363855234_636472_0'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_562937_192'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_740411_193' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364199515_845291_182' name='startDateMin' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_170391_195'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_683169_196' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169364208640_522460_184' name='startDateMax' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169364152171_496868_160'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169364239546_59154_198'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169364239546_560927_199' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169562456859_157459_687' name='UserDetailsVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' generalization='_9_5_1_8c50279_1169562535046_945830_717'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562470406_823011_703' name='password' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_795989_836'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562477031_255224_705' name='email' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_215926_837'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562481953_212399_707' name='isActive' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_655427_838'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_736816_6'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::boolean'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562489843_563027_709' name='creationDate' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_874748_839'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_195604_13'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Date'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562502531_38451_711' name='comment' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687'> <UML:StructuralFeature.multiplicity> <UML:Multiplicity xmi.id='_9_5_1_8c50279_1169562788046_134443_840'> <UML:Multiplicity.range> <UML:MultiplicityRange xmi.id='_9_5_1_8c50279_1169562788046_481615_841' lower='0' upper='1'/> </UML:Multiplicity.range> </UML:Multiplicity> </UML:StructuralFeature.multiplicity> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_900348_842'/> </UML:Attribute.initialValue> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_364079_66'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::String'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562512984_189574_713' name='roles' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562456859_157459_687' type='_9_5_1_8c50279_1169562608640_540814_805'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_397077_843'/> </UML:Attribute.initialValue> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Generalization xmi.id='_9_5_1_8c50279_1169562535046_945830_717' child='_9_5_1_8c50279_1169562456859_157459_687' parent='_9_5_1_8c50279_1169285116546_935256_4'/> <UML:Class xmi.id='_9_5_1_8c50279_1169562568156_910485_774' name='UserRoleVO' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119373197267_59537_10'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::ValueObject'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562581812_130339_790' name='id' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562568156_910485_774'> <UML:StructuralFeature.type> <UML:Classifier href='andromda-profile-datatype-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119336925531_227130_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='datatype::Long'/> </XMI.extension> </UML:Classifier> </UML:StructuralFeature.type> </UML:Attribute> <UML:Attribute xmi.id='_9_5_1_8c50279_1169562587046_819984_792' name='role' visibility='public' ownerScope='instance' changeability='changeable' targetScope='instance' ordering='unordered' owner='_9_5_1_8c50279_1169562568156_910485_774' type='_9_5_1_8c50279_1169561392937_952991_572'> <UML:Attribute.initialValue> <UML:Expression xmi.id='_9_5_1_8c50279_1169562788046_949192_844'/> </UML:Attribute.initialValue> </UML:Attribute> </UML:Classifier.feature> </UML:Class> <UML:Class xmi.id='_9_5_1_8c50279_1169562608640_540814_805' name='UserRoleVO[]' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'/> </UML:Namespace.ownedElement> </UML:Package> <UML:Package xmi.id='_9_5_1_8c50279_1169285569687_156903_153' name='service' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Class xmi.id='_9_5_1_8c50279_1169285587500_873918_164' name='UserService' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' clientDependency='_9_5_1_8c50279_1169288699328_180606_363'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-service-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119337557859_21792_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::service::Service'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Operation xmi.id='_9_5_1_8c50279_1169285605734_285967_181' name='getAllUsers' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169285587500_873918_164'> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id='_9_5_1_8c50279_1169285668281_781419_183' kind='return' type='_9_5_1_8c50279_1169285311500_838087_119'/> </UML:BehavioralFeature.parameter> </UML:Operation> <UML:Operation xmi.id='_9_5_1_8c50279_1169607055218_374842_908' name='registerUser' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169285587500_873918_164'> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id='_9_5_1_8c50279_1169607054031_566687_906' name='userDetailVO' kind='inout' type='_9_5_1_8c50279_1169562456859_157459_687'/> <UML:Parameter xmi.id='_9_5_1_8c50279_1169607054031_231021_907' kind='return' type='_9_5_1_8c50279_1169562456859_157459_687'/> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> </UML:Class> <UML:Dependency xmi.id='_9_5_1_8c50279_1169288699328_180606_363' client='_9_5_1_8c50279_1169285587500_873918_164' supplier='_9_5_1_8c50279_1169288267218_362608_214'/> <UML:Class xmi.id='_9_5_1_8c50279_1169364265078_632331_210' name='TimeTrackingService' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false' clientDependency='_9_5_1_8c50279_1169395300312_487935_567'> <UML:ModelElement.stereotype> <UML:Stereotype href='andromda-profile-service-3.3-SNAPSHOT.xml.zip|_9_0_1fe00f9_1119337557859_21792_59'> <XMI.extension xmi.extender='MagicDraw UML 9.5' xmi.extenderID='MagicDraw UML 9.5'> <referentPath xmi.value='org.andromda.profile::service::Service'/> </XMI.extension> </UML:Stereotype> </UML:ModelElement.stereotype> <UML:Classifier.feature> <UML:Operation xmi.id='_9_5_1_8c50279_1169364307531_927180_228' name='findTimecards' visibility='public' ownerScope='instance' isQuery='false' concurrency='sequential' isRoot='false' isLeaf='false' isAbstract='false' owner='_9_5_1_8c50279_1169364265078_632331_210'> <UML:BehavioralFeature.parameter> <UML:Parameter xmi.id='_9_5_1_8c50279_1169364306421_983235_226' name='criteria' kind='inout' type='_9_5_1_8c50279_1169364152171_496868_160'/> <UML:Parameter xmi.id='_9_5_1_8c50279_1169364306421_864968_227' kind='return' type='_9_5_1_8c50279_1169364119234_263956_142'/> </UML:BehavioralFeature.parameter> </UML:Operation> </UML:Classifier.feature> </UML:Class> <UML:Dependency xmi.id='_9_5_1_8c50279_1169395300312_487935_567' client='_9_5_1_8c50279_1169364265078_632331_210' supplier='_9_5_1_8c50279_1169393103765_703156_231'/> </UML:Namespace.ownedElement> </UML:Package> <UML:Package xmi.id='_9_5_1_8c50279_1169288239437_239811_203' name='domain' isRoot='false' isLeaf='false' isAbstract='false'> <UML:Namespace.ownedElement> <UML:Class xmi.id='_9_5_1_8c50279_1169288267218_362608_214' name='User' visibility='public' isRoot='false' isLeaf='false' isAbstract='false' isActive='false'> <UML:ModelElement.clientDependency> <UML:Dependenc... [truncated message content] |