getMembers() {
+ if (this.members == null) {
+ this.members = new EObjectResolvingEList<>(Person.class, this, ProjectmgmtPackage.PROJECT__MEMBERS);
+ }
+ return this.members;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Boolean getIsSensitive() {
+ return this.isSensitive;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setIsSensitive(Boolean newIsSensitive) {
+ Boolean oldIsSensitive = this.isSensitive;
+ this.isSensitive = newIsSensitive;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__IS_SENSITIVE, oldIsSensitive, this.isSensitive));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getContractualStartDate() {
+ return this.contractualStartDate;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setContractualStartDate(LocalDate newContractualStartDate) {
+ LocalDate oldContractualStartDate = this.contractualStartDate;
+ this.contractualStartDate = newContractualStartDate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__CONTRACTUAL_START_DATE, oldContractualStartDate, this.contractualStartDate));
+
+ if (this.contractualStartDate == null) {
+ this.setContractualEndDate(null);
+ } else if (this.duration != null) {
+ this.setDuration(this.duration);
+ } else if (this.contractualEndDate != null) {
+ this.setContractualEndDate(this.contractualEndDate);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Integer getDuration() {
+ return this.duration;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setDuration(Integer newDuration) {
+ Integer oldDuration = this.duration;
+ if (newDuration != null && newDuration < 0) {
+ this.duration = 0;
+ } else {
+ this.duration = newDuration;
+ }
+
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__DURATION, oldDuration, this.duration));
+
+ if (this.duration == null) {
+ LocalDate oldContractualEndDate = this.contractualEndDate;
+ this.contractualEndDate = null;
+
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE, oldContractualEndDate, this.contractualEndDate));
+ } else if (this.contractualStartDate != null) {
+ LocalDate oldContractualEndDate = this.contractualEndDate;
+ this.contractualEndDate = this.contractualStartDate.plusWeeks(this.duration);
+
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE, oldContractualEndDate, this.contractualEndDate));
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getContractualEndDate() {
+ return this.contractualEndDate;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ @Override
+ public void setContractualEndDate(LocalDate newContractualEndDate) {
+ LocalDate oldContractualEndDate = this.contractualEndDate;
+ this.contractualEndDate = newContractualEndDate;
+ if (this.contractualStartDate != null && this.contractualStartDate.until(newContractualEndDate, ChronoUnit.WEEKS) < 0) {
+ this.contractualEndDate = this.contractualStartDate;
+ }
+
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE, oldContractualEndDate, this.contractualEndDate));
+
+ if (this.contractualEndDate == null) {
+ Integer oldDuration = this.duration;
+ this.duration = null;
+
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__DURATION, oldDuration, this.duration));
+ } else if (this.contractualStartDate != null) {
+ Integer oldDuration = this.duration;
+ this.duration = Integer.valueOf(Long.valueOf(this.contractualStartDate.until(this.contractualEndDate, ChronoUnit.WEEKS)).intValue());
+
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__DURATION, oldDuration, this.duration));
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getEffectiveStartDate() {
+ return this.effectiveStartDate;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setEffectiveStartDate(LocalDate newEffectiveStartDate) {
+ LocalDate oldEffectiveStartDate = this.effectiveStartDate;
+ this.effectiveStartDate = newEffectiveStartDate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__EFFECTIVE_START_DATE, oldEffectiveStartDate, this.effectiveStartDate));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getEffectiveEndDate() {
+ return this.effectiveEndDate;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setEffectiveEndDate(LocalDate newEffectiveEndDate) {
+ LocalDate oldEffectiveEndDate = this.effectiveEndDate;
+ this.effectiveEndDate = newEffectiveEndDate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__EFFECTIVE_END_DATE, oldEffectiveEndDate, this.effectiveEndDate));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Integer getContractTermExtension() {
+ return this.contractTermExtension;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setContractTermExtension(Integer newContractTermExtension) {
+ Integer oldContractTermExtension = this.contractTermExtension;
+ this.contractTermExtension = newContractTermExtension;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__CONTRACT_TERM_EXTENSION, oldContractTermExtension, this.contractTermExtension));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Double getGlobalCost() {
+ return this.globalCost;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setGlobalCost(Double newGlobalCost) {
+ Double oldGlobalCost = this.globalCost;
+ this.globalCost = newGlobalCost;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__GLOBAL_COST, oldGlobalCost, this.globalCost));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Double getFundingRate() {
+ return this.fundingRate;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setFundingRate(Double newFundingRate) {
+ Double oldFundingRate = this.fundingRate;
+ this.fundingRate = newFundingRate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__FUNDING_RATE, oldFundingRate, this.fundingRate));
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ @Override
+ public Double getFunding() {
+ if (this.globalCost != null && this.fundingRate != null && this.fundingRate > 0) {
+ Double value = this.globalCost * this.fundingRate / 100;
+ return new BigDecimal(value).setScale(2, RoundingMode.HALF_UP).doubleValue();
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Integer getManpower() {
+ return this.manpower;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setManpower(Integer newManpower) {
+ Integer oldManpower = this.manpower;
+ this.manpower = newManpower;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__MANPOWER, oldManpower, this.manpower));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getEOTP() {
+ return this.eOTP;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setEOTP(String newEOTP) {
+ String oldEOTP = this.eOTP;
+ this.eOTP = newEOTP;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__EOTP, oldEOTP, this.eOTP));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getStatisticOrder() {
+ return this.statisticOrder;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setStatisticOrder(String newStatisticOrder) {
+ String oldStatisticOrder = this.statisticOrder;
+ this.statisticOrder = newStatisticOrder;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__STATISTIC_ORDER, oldStatisticOrder, this.statisticOrder));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getInternalNeed() {
+ return this.internalNeed;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setInternalNeed(String newInternalNeed) {
+ String oldInternalNeed = this.internalNeed;
+ this.internalNeed = newInternalNeed;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__INTERNAL_NEED, oldInternalNeed, this.internalNeed));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getClientNeed() {
+ return this.clientNeed;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setClientNeed(String newClientNeed) {
+ String oldClientNeed = this.clientNeed;
+ this.clientNeed = newClientNeed;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.PROJECT__CLIENT_NEED, oldClientNeed, this.clientNeed));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProjectmgmtPackage.PROJECT__OWNED_WORKPACKAGES:
+ return ((InternalEList>) this.getOwnedWorkpackages()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.PROJECT__OWNED_OBJECTIVES:
+ return ((InternalEList>) this.getOwnedObjectives()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.PROJECT__OWNED_TAG_FOLDERS:
+ return ((InternalEList>) this.getOwnedTagFolders()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.PROJECT__OWNED_RISKS:
+ return ((InternalEList>) this.getOwnedRisks()).basicRemove(otherEnd, msgs);
+ default:
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.PROJECT__NAME:
+ return this.getName();
+ case ProjectmgmtPackage.PROJECT__OWNED_WORKPACKAGES:
+ return this.getOwnedWorkpackages();
+ case ProjectmgmtPackage.PROJECT__OWNED_OBJECTIVES:
+ return this.getOwnedObjectives();
+ case ProjectmgmtPackage.PROJECT__OWNED_TAG_FOLDERS:
+ return this.getOwnedTagFolders();
+ case ProjectmgmtPackage.PROJECT__OWNED_RISKS:
+ return this.getOwnedRisks();
+ case ProjectmgmtPackage.PROJECT__REFERENCE:
+ return this.getReference();
+ case ProjectmgmtPackage.PROJECT__DESCRIPTION:
+ return this.getDescription();
+ case ProjectmgmtPackage.PROJECT__LEADING_UNIT:
+ if (resolve)
+ return this.getLeadingUnit();
+ return this.basicGetLeadingUnit();
+ case ProjectmgmtPackage.PROJECT__PARTICIPANT_UNITS:
+ return this.getParticipantUnits();
+ case ProjectmgmtPackage.PROJECT__PLANNIFIED_CLIENT_COPIL_MEETINGS:
+ return this.getPlannifiedClientCopilMeetings();
+ case ProjectmgmtPackage.PROJECT__MAIN_PROGRAM_BRICK:
+ return this.getMainProgramBrick();
+ case ProjectmgmtPackage.PROJECT__STATE:
+ return this.getState();
+ case ProjectmgmtPackage.PROJECT__CLIENTS:
+ return this.getClients();
+ case ProjectmgmtPackage.PROJECT__PARTNERS:
+ return this.getPartners();
+ case ProjectmgmtPackage.PROJECT__IS_TRANSVERSE:
+ return this.getIsTransverse();
+ case ProjectmgmtPackage.PROJECT__LEADER:
+ if (resolve)
+ return this.getLeader();
+ return this.basicGetLeader();
+ case ProjectmgmtPackage.PROJECT__MEMBERS:
+ return this.getMembers();
+ case ProjectmgmtPackage.PROJECT__IS_SENSITIVE:
+ return this.getIsSensitive();
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_START_DATE:
+ return this.getContractualStartDate();
+ case ProjectmgmtPackage.PROJECT__DURATION:
+ return this.getDuration();
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE:
+ return this.getContractualEndDate();
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_START_DATE:
+ return this.getEffectiveStartDate();
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_END_DATE:
+ return this.getEffectiveEndDate();
+ case ProjectmgmtPackage.PROJECT__CONTRACT_TERM_EXTENSION:
+ return this.getContractTermExtension();
+ case ProjectmgmtPackage.PROJECT__GLOBAL_COST:
+ return this.getGlobalCost();
+ case ProjectmgmtPackage.PROJECT__FUNDING_RATE:
+ return this.getFundingRate();
+ case ProjectmgmtPackage.PROJECT__FUNDING:
+ return this.getFunding();
+ case ProjectmgmtPackage.PROJECT__MANPOWER:
+ return this.getManpower();
+ case ProjectmgmtPackage.PROJECT__EOTP:
+ return this.getEOTP();
+ case ProjectmgmtPackage.PROJECT__STATISTIC_ORDER:
+ return this.getStatisticOrder();
+ case ProjectmgmtPackage.PROJECT__INTERNAL_NEED:
+ return this.getInternalNeed();
+ case ProjectmgmtPackage.PROJECT__CLIENT_NEED:
+ return this.getClientNeed();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.PROJECT__NAME:
+ this.setName((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_WORKPACKAGES:
+ this.getOwnedWorkpackages().clear();
+ this.getOwnedWorkpackages().addAll((Collection extends Workpackage>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_OBJECTIVES:
+ this.getOwnedObjectives().clear();
+ this.getOwnedObjectives().addAll((Collection extends Objective>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_TAG_FOLDERS:
+ this.getOwnedTagFolders().clear();
+ this.getOwnedTagFolders().addAll((Collection extends TagFolder>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_RISKS:
+ this.getOwnedRisks().clear();
+ this.getOwnedRisks().addAll((Collection extends Risk>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__REFERENCE:
+ this.setReference((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__DESCRIPTION:
+ this.setDescription((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__LEADING_UNIT:
+ this.setLeadingUnit((InternalStakeholder) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__PARTICIPANT_UNITS:
+ this.getParticipantUnits().clear();
+ this.getParticipantUnits().addAll((Collection extends InternalStakeholder>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__PLANNIFIED_CLIENT_COPIL_MEETINGS:
+ this.setPlannifiedClientCopilMeetings((Boolean) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__MAIN_PROGRAM_BRICK:
+ this.setMainProgramBrick((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__STATE:
+ this.setState((ProjectState) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__CLIENTS:
+ this.getClients().clear();
+ this.getClients().addAll((Collection extends ExternalStakeholder>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__PARTNERS:
+ this.getPartners().clear();
+ this.getPartners().addAll((Collection extends ExternalStakeholder>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__LEADER:
+ this.setLeader((Person) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__MEMBERS:
+ this.getMembers().clear();
+ this.getMembers().addAll((Collection extends Person>) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__IS_SENSITIVE:
+ this.setIsSensitive((Boolean) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_START_DATE:
+ this.setContractualStartDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__DURATION:
+ this.setDuration((Integer) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE:
+ this.setContractualEndDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_START_DATE:
+ this.setEffectiveStartDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_END_DATE:
+ this.setEffectiveEndDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__CONTRACT_TERM_EXTENSION:
+ this.setContractTermExtension((Integer) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__GLOBAL_COST:
+ this.setGlobalCost((Double) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__FUNDING_RATE:
+ this.setFundingRate((Double) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__MANPOWER:
+ this.setManpower((Integer) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__EOTP:
+ this.setEOTP((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__STATISTIC_ORDER:
+ this.setStatisticOrder((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__INTERNAL_NEED:
+ this.setInternalNeed((String) newValue);
+ return;
+ case ProjectmgmtPackage.PROJECT__CLIENT_NEED:
+ this.setClientNeed((String) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.PROJECT__NAME:
+ this.setName(NAME_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_WORKPACKAGES:
+ this.getOwnedWorkpackages().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_OBJECTIVES:
+ this.getOwnedObjectives().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_TAG_FOLDERS:
+ this.getOwnedTagFolders().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__OWNED_RISKS:
+ this.getOwnedRisks().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__REFERENCE:
+ this.setReference(REFERENCE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__DESCRIPTION:
+ this.setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__LEADING_UNIT:
+ this.setLeadingUnit(null);
+ return;
+ case ProjectmgmtPackage.PROJECT__PARTICIPANT_UNITS:
+ this.getParticipantUnits().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__PLANNIFIED_CLIENT_COPIL_MEETINGS:
+ this.setPlannifiedClientCopilMeetings(PLANNIFIED_CLIENT_COPIL_MEETINGS_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__MAIN_PROGRAM_BRICK:
+ this.setMainProgramBrick(MAIN_PROGRAM_BRICK_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__STATE:
+ this.setState(STATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__CLIENTS:
+ this.getClients().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__PARTNERS:
+ this.getPartners().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__LEADER:
+ this.setLeader(null);
+ return;
+ case ProjectmgmtPackage.PROJECT__MEMBERS:
+ this.getMembers().clear();
+ return;
+ case ProjectmgmtPackage.PROJECT__IS_SENSITIVE:
+ this.setIsSensitive(IS_SENSITIVE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_START_DATE:
+ this.setContractualStartDate(CONTRACTUAL_START_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__DURATION:
+ this.setDuration(DURATION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE:
+ this.setContractualEndDate(CONTRACTUAL_END_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_START_DATE:
+ this.setEffectiveStartDate(EFFECTIVE_START_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_END_DATE:
+ this.setEffectiveEndDate(EFFECTIVE_END_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__CONTRACT_TERM_EXTENSION:
+ this.setContractTermExtension(CONTRACT_TERM_EXTENSION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__GLOBAL_COST:
+ this.setGlobalCost(GLOBAL_COST_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__FUNDING_RATE:
+ this.setFundingRate(FUNDING_RATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__MANPOWER:
+ this.setManpower(MANPOWER_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__EOTP:
+ this.setEOTP(EOTP_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__STATISTIC_ORDER:
+ this.setStatisticOrder(STATISTIC_ORDER_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__INTERNAL_NEED:
+ this.setInternalNeed(INTERNAL_NEED_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.PROJECT__CLIENT_NEED:
+ this.setClientNeed(CLIENT_NEED_EDEFAULT);
+ return;
+ default:
+ super.eUnset(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.PROJECT__NAME:
+ return !Objects.equals(NAME_EDEFAULT, this.name);
+ case ProjectmgmtPackage.PROJECT__OWNED_WORKPACKAGES:
+ return this.ownedWorkpackages != null && !this.ownedWorkpackages.isEmpty();
+ case ProjectmgmtPackage.PROJECT__OWNED_OBJECTIVES:
+ return this.ownedObjectives != null && !this.ownedObjectives.isEmpty();
+ case ProjectmgmtPackage.PROJECT__OWNED_TAG_FOLDERS:
+ return this.ownedTagFolders != null && !this.ownedTagFolders.isEmpty();
+ case ProjectmgmtPackage.PROJECT__OWNED_RISKS:
+ return this.ownedRisks != null && !this.ownedRisks.isEmpty();
+ case ProjectmgmtPackage.PROJECT__REFERENCE:
+ return !Objects.equals(REFERENCE_EDEFAULT, this.reference);
+ case ProjectmgmtPackage.PROJECT__DESCRIPTION:
+ return !Objects.equals(DESCRIPTION_EDEFAULT, this.description);
+ case ProjectmgmtPackage.PROJECT__LEADING_UNIT:
+ return this.leadingUnit != null;
+ case ProjectmgmtPackage.PROJECT__PARTICIPANT_UNITS:
+ return this.participantUnits != null && !this.participantUnits.isEmpty();
+ case ProjectmgmtPackage.PROJECT__PLANNIFIED_CLIENT_COPIL_MEETINGS:
+ return !Objects.equals(PLANNIFIED_CLIENT_COPIL_MEETINGS_EDEFAULT, this.plannifiedClientCopilMeetings);
+ case ProjectmgmtPackage.PROJECT__MAIN_PROGRAM_BRICK:
+ return !Objects.equals(MAIN_PROGRAM_BRICK_EDEFAULT, this.mainProgramBrick);
+ case ProjectmgmtPackage.PROJECT__STATE:
+ return this.state != STATE_EDEFAULT;
+ case ProjectmgmtPackage.PROJECT__CLIENTS:
+ return this.clients != null && !this.clients.isEmpty();
+ case ProjectmgmtPackage.PROJECT__PARTNERS:
+ return this.partners != null && !this.partners.isEmpty();
+ case ProjectmgmtPackage.PROJECT__IS_TRANSVERSE:
+ return IS_TRANSVERSE_EDEFAULT == null ? this.getIsTransverse() != null : !IS_TRANSVERSE_EDEFAULT.equals(this.getIsTransverse());
+ case ProjectmgmtPackage.PROJECT__LEADER:
+ return this.leader != null;
+ case ProjectmgmtPackage.PROJECT__MEMBERS:
+ return this.members != null && !this.members.isEmpty();
+ case ProjectmgmtPackage.PROJECT__IS_SENSITIVE:
+ return !Objects.equals(IS_SENSITIVE_EDEFAULT, this.isSensitive);
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_START_DATE:
+ return !Objects.equals(CONTRACTUAL_START_DATE_EDEFAULT, this.contractualStartDate);
+ case ProjectmgmtPackage.PROJECT__DURATION:
+ return !Objects.equals(DURATION_EDEFAULT, this.duration);
+ case ProjectmgmtPackage.PROJECT__CONTRACTUAL_END_DATE:
+ return !Objects.equals(CONTRACTUAL_END_DATE_EDEFAULT, this.contractualEndDate);
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_START_DATE:
+ return !Objects.equals(EFFECTIVE_START_DATE_EDEFAULT, this.effectiveStartDate);
+ case ProjectmgmtPackage.PROJECT__EFFECTIVE_END_DATE:
+ return !Objects.equals(EFFECTIVE_END_DATE_EDEFAULT, this.effectiveEndDate);
+ case ProjectmgmtPackage.PROJECT__CONTRACT_TERM_EXTENSION:
+ return !Objects.equals(CONTRACT_TERM_EXTENSION_EDEFAULT, this.contractTermExtension);
+ case ProjectmgmtPackage.PROJECT__GLOBAL_COST:
+ return !Objects.equals(GLOBAL_COST_EDEFAULT, this.globalCost);
+ case ProjectmgmtPackage.PROJECT__FUNDING_RATE:
+ return !Objects.equals(FUNDING_RATE_EDEFAULT, this.fundingRate);
+ case ProjectmgmtPackage.PROJECT__FUNDING:
+ return FUNDING_EDEFAULT == null ? this.getFunding() != null : !FUNDING_EDEFAULT.equals(this.getFunding());
+ case ProjectmgmtPackage.PROJECT__MANPOWER:
+ return !Objects.equals(MANPOWER_EDEFAULT, this.manpower);
+ case ProjectmgmtPackage.PROJECT__EOTP:
+ return !Objects.equals(EOTP_EDEFAULT, this.eOTP);
+ case ProjectmgmtPackage.PROJECT__STATISTIC_ORDER:
+ return !Objects.equals(STATISTIC_ORDER_EDEFAULT, this.statisticOrder);
+ case ProjectmgmtPackage.PROJECT__INTERNAL_NEED:
+ return !Objects.equals(INTERNAL_NEED_EDEFAULT, this.internalNeed);
+ case ProjectmgmtPackage.PROJECT__CLIENT_NEED:
+ return !Objects.equals(CLIENT_NEED_EDEFAULT, this.clientNeed);
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ String result = super.toString() + " (name: "
+ + this.name
+ + ", reference: "
+ + this.reference
+ + ", description: "
+ + this.description
+ + ", plannifiedClientCopilMeetings: "
+ + this.plannifiedClientCopilMeetings
+ + ", mainProgramBrick: "
+ + this.mainProgramBrick
+ + ", state: "
+ + this.state
+ + ", isSensitive: "
+ + this.isSensitive
+ + ", contractualStartDate: "
+ + this.contractualStartDate
+ + ", duration: "
+ + this.duration
+ + ", contractualEndDate: "
+ + this.contractualEndDate
+ + ", effectiveStartDate: "
+ + this.effectiveStartDate
+ + ", effectiveEndDate: "
+ + this.effectiveEndDate
+ + ", contractTermExtension: "
+ + this.contractTermExtension
+ + ", globalCost: "
+ + this.globalCost
+ + ", fundingRate: "
+ + this.fundingRate
+ + ", manpower: "
+ + this.manpower
+ + ", eOTP: "
+ + this.eOTP
+ + ", statisticOrder: "
+ + this.statisticOrder
+ + ", internalNeed: "
+ + this.internalNeed
+ + ", clientNeed: "
+ + this.clientNeed
+ + ')';
+ return result;
+ }
+
+} // ProjectImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ProjectmgmtFactoryImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ProjectmgmtFactoryImpl.java
new file mode 100644
index 0000000..6a2a1ad
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ProjectmgmtFactoryImpl.java
@@ -0,0 +1,491 @@
+/*******************************************************************************
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.ExternalStakeholder;
+import fr.cea.deeplab.projectmgmt.InternalStakeholder;
+import fr.cea.deeplab.projectmgmt.KeyResult;
+import fr.cea.deeplab.projectmgmt.Objective;
+import fr.cea.deeplab.projectmgmt.Organization;
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.Project;
+import fr.cea.deeplab.projectmgmt.ProjectState;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtFactory;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.ResourceFolder;
+import fr.cea.deeplab.projectmgmt.Risk;
+import fr.cea.deeplab.projectmgmt.RiskKind;
+import fr.cea.deeplab.projectmgmt.RiskState;
+import fr.cea.deeplab.projectmgmt.TagFolder;
+import fr.cea.deeplab.projectmgmt.Task;
+import fr.cea.deeplab.projectmgmt.TaskTag;
+import fr.cea.deeplab.projectmgmt.Team;
+import fr.cea.deeplab.projectmgmt.Workpackage;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefact;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefactNature;
+
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+
+/**
+ * An implementation of the model Factory.
+ *
+ * @generated
+ */
+public class ProjectmgmtFactoryImpl extends EFactoryImpl implements ProjectmgmtFactory {
+ /**
+ * Creates the default factory implementation.
+ *
+ * @generated
+ */
+ public static ProjectmgmtFactory init() {
+ try {
+ ProjectmgmtFactory theProjectmgmtFactory = (ProjectmgmtFactory) EPackage.Registry.INSTANCE.getEFactory(ProjectmgmtPackage.eNS_URI);
+ if (theProjectmgmtFactory != null) {
+ return theProjectmgmtFactory;
+ }
+ } catch (Exception exception) {
+ EcorePlugin.INSTANCE.log(exception);
+ }
+ return new ProjectmgmtFactoryImpl();
+ }
+
+ /**
+ * Creates an instance of the factory.
+ *
+ * @generated
+ */
+ public ProjectmgmtFactoryImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EObject create(EClass eClass) {
+ switch (eClass.getClassifierID()) {
+ case ProjectmgmtPackage.ORGANIZATION:
+ return this.createOrganization();
+ case ProjectmgmtPackage.RESOURCE_FOLDER:
+ return this.createResourceFolder();
+ case ProjectmgmtPackage.TEAM:
+ return this.createTeam();
+ case ProjectmgmtPackage.INTERNAL_STAKEHOLDER:
+ return this.createInternalStakeholder();
+ case ProjectmgmtPackage.EXTERNAL_STAKEHOLDER:
+ return this.createExternalStakeholder();
+ case ProjectmgmtPackage.PERSON:
+ return this.createPerson();
+ case ProjectmgmtPackage.TAG_FOLDER:
+ return this.createTagFolder();
+ case ProjectmgmtPackage.TASK_TAG:
+ return this.createTaskTag();
+ case ProjectmgmtPackage.TASK:
+ return this.createTask();
+ case ProjectmgmtPackage.OBJECTIVE:
+ return this.createObjective();
+ case ProjectmgmtPackage.KEY_RESULT:
+ return this.createKeyResult();
+ case ProjectmgmtPackage.PROJECT:
+ return this.createProject();
+ case ProjectmgmtPackage.WORKPACKAGE:
+ return this.createWorkpackage();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT:
+ return this.createWorkpackageArtefact();
+ case ProjectmgmtPackage.RISK:
+ return this.createRisk();
+ default:
+ throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object createFromString(EDataType eDataType, String initialValue) {
+ switch (eDataType.getClassifierID()) {
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT_NATURE:
+ return this.createWorkpackageArtefactNatureFromString(eDataType, initialValue);
+ case ProjectmgmtPackage.RISK_KIND:
+ return this.createRiskKindFromString(eDataType, initialValue);
+ case ProjectmgmtPackage.RISK_STATE:
+ return this.createRiskStateFromString(eDataType, initialValue);
+ case ProjectmgmtPackage.PROJECT_STATE:
+ return this.createProjectStateFromString(eDataType, initialValue);
+ case ProjectmgmtPackage.INSTANT:
+ return this.createInstantFromString(eDataType, initialValue);
+ case ProjectmgmtPackage.DATE:
+ return this.createDateFromString(eDataType, initialValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String convertToString(EDataType eDataType, Object instanceValue) {
+ switch (eDataType.getClassifierID()) {
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT_NATURE:
+ return this.convertWorkpackageArtefactNatureToString(eDataType, instanceValue);
+ case ProjectmgmtPackage.RISK_KIND:
+ return this.convertRiskKindToString(eDataType, instanceValue);
+ case ProjectmgmtPackage.RISK_STATE:
+ return this.convertRiskStateToString(eDataType, instanceValue);
+ case ProjectmgmtPackage.PROJECT_STATE:
+ return this.convertProjectStateToString(eDataType, instanceValue);
+ case ProjectmgmtPackage.INSTANT:
+ return this.convertInstantToString(eDataType, instanceValue);
+ case ProjectmgmtPackage.DATE:
+ return this.convertDateToString(eDataType, instanceValue);
+ default:
+ throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Organization createOrganization() {
+ OrganizationImpl organization = new OrganizationImpl();
+ return organization;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public ResourceFolder createResourceFolder() {
+ ResourceFolderImpl resourceFolder = new ResourceFolderImpl();
+ return resourceFolder;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Team createTeam() {
+ TeamImpl team = new TeamImpl();
+ return team;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public InternalStakeholder createInternalStakeholder() {
+ InternalStakeholderImpl internalStakeholder = new InternalStakeholderImpl();
+ return internalStakeholder;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public ExternalStakeholder createExternalStakeholder() {
+ ExternalStakeholderImpl externalStakeholder = new ExternalStakeholderImpl();
+ return externalStakeholder;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Person createPerson() {
+ PersonImpl person = new PersonImpl();
+ return person;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public TagFolder createTagFolder() {
+ TagFolderImpl tagFolder = new TagFolderImpl();
+ return tagFolder;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public TaskTag createTaskTag() {
+ TaskTagImpl taskTag = new TaskTagImpl();
+ return taskTag;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Task createTask() {
+ TaskImpl task = new TaskImpl();
+ return task;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Objective createObjective() {
+ ObjectiveImpl objective = new ObjectiveImpl();
+ return objective;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public KeyResult createKeyResult() {
+ KeyResultImpl keyResult = new KeyResultImpl();
+ return keyResult;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Project createProject() {
+ ProjectImpl project = new ProjectImpl();
+ return project;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Workpackage createWorkpackage() {
+ WorkpackageImpl workpackage = new WorkpackageImpl();
+ return workpackage;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public WorkpackageArtefact createWorkpackageArtefact() {
+ WorkpackageArtefactImpl workpackageArtefact = new WorkpackageArtefactImpl();
+ return workpackageArtefact;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Risk createRisk() {
+ RiskImpl risk = new RiskImpl();
+ return risk;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public WorkpackageArtefactNature createWorkpackageArtefactNatureFromString(EDataType eDataType, String initialValue) {
+ WorkpackageArtefactNature result = WorkpackageArtefactNature.get(initialValue);
+// if (result == null)
+// throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertWorkpackageArtefactNatureToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public RiskKind createRiskKindFromString(EDataType eDataType, String initialValue) {
+ RiskKind result = RiskKind.get(initialValue);
+// if (result == null)
+// throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertRiskKindToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public RiskState createRiskStateFromString(EDataType eDataType, String initialValue) {
+ RiskState result = RiskState.get(initialValue);
+// if (result == null)
+// throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertRiskStateToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public ProjectState createProjectStateFromString(EDataType eDataType, String initialValue) {
+ ProjectState result = ProjectState.get(initialValue);
+// if (result == null)
+// throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
+ return result;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String convertProjectStateToString(EDataType eDataType, Object instanceValue) {
+ return instanceValue == null ? null : instanceValue.toString();
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public Instant createInstantFromString(EDataType eDataType, String initialValue) {
+ if (initialValue != null) {
+ return Instant.parse(initialValue);
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public String convertInstantToString(EDataType eDataType, Object instanceValue) {
+ if (instanceValue instanceof Instant instant) {
+ return DateTimeFormatter.ISO_INSTANT.format(instant);
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public LocalDate createDateFromString(EDataType eDataType, String initialValue) {
+ if (initialValue != null) {
+ return LocalDate.parse(initialValue);
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated NOT
+ */
+ public String convertDateToString(EDataType eDataType, Object instanceValue) {
+ if (instanceValue instanceof LocalDate localDate) {
+ return DateTimeFormatter.ISO_LOCAL_DATE.format(localDate);
+ }
+ return null;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public ProjectmgmtPackage getProjectmgmtPackage() {
+ return (ProjectmgmtPackage) this.getEPackage();
+ }
+
+ /**
+ *
+ *
+ * @deprecated
+ * @generated
+ */
+ @Deprecated
+ public static ProjectmgmtPackage getPackage() {
+ return ProjectmgmtPackage.eINSTANCE;
+ }
+
+} // ProjectmgmtFactoryImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ProjectmgmtPackageImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ProjectmgmtPackageImpl.java
new file mode 100644
index 0000000..1d2e12c
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ProjectmgmtPackageImpl.java
@@ -0,0 +1,1867 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import static fr.cea.deeplab.projectmgmt.ProjectmgmtPackage.RESOURCE;
+
+import fr.cea.deeplab.projectmgmt.AbstractTask;
+import fr.cea.deeplab.projectmgmt.ExternalStakeholder;
+import fr.cea.deeplab.projectmgmt.InternalStakeholder;
+import fr.cea.deeplab.projectmgmt.KeyResult;
+import fr.cea.deeplab.projectmgmt.Objective;
+import fr.cea.deeplab.projectmgmt.Organization;
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.Project;
+import fr.cea.deeplab.projectmgmt.ProjectState;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtFactory;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Resource;
+import fr.cea.deeplab.projectmgmt.ResourceFolder;
+import fr.cea.deeplab.projectmgmt.Risk;
+import fr.cea.deeplab.projectmgmt.RiskKind;
+import fr.cea.deeplab.projectmgmt.RiskState;
+import fr.cea.deeplab.projectmgmt.TagFolder;
+import fr.cea.deeplab.projectmgmt.Task;
+import fr.cea.deeplab.projectmgmt.TaskTag;
+import fr.cea.deeplab.projectmgmt.Team;
+import fr.cea.deeplab.projectmgmt.Workpackage;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefact;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefactNature;
+
+import java.time.Instant;
+import java.time.LocalDate;
+
+import org.eclipse.emf.ecore.EAttribute;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EDataType;
+import org.eclipse.emf.ecore.EEnum;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.EReference;
+import org.eclipse.emf.ecore.impl.EPackageImpl;
+
+/**
+ * An implementation of the model Package.
+ *
+ * @generated
+ */
+public class ProjectmgmtPackageImpl extends EPackageImpl implements ProjectmgmtPackage {
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass organizationEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass resourceEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass resourceFolderEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass teamEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass internalStakeholderEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass externalStakeholderEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass personEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass abstractTaskEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass tagFolderEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass taskTagEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass taskEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass objectiveEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass keyResultEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass projectEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass workpackageEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass workpackageArtefactEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass riskEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum workpackageArtefactNatureEEnum = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum riskKindEEnum = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum riskStateEEnum = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EEnum projectStateEEnum = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EDataType instantEDataType = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EDataType dateEDataType = null;
+
+ /**
+ * Creates an instance of the model Package, registered with {@link org.eclipse.emf.ecore.EPackage.Registry
+ * EPackage.Registry} by the package package URI value.
+ *
+ * Note: the correct way to create the package is via the static factory method {@link #init init()}, which also
+ * performs initialization of the package, or returns the registered package, if one already exists.
+ *
+ * @see org.eclipse.emf.ecore.EPackage.Registry
+ * @see fr.cea.deeplab.projectmgmt.ProjectmgmtPackage#eNS_URI
+ * @see #init()
+ * @generated
+ */
+ private ProjectmgmtPackageImpl() {
+ super(eNS_URI, ProjectmgmtFactory.eINSTANCE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private static boolean isInited = false;
+
+ /**
+ * Creates, registers, and initializes the Package for this model, and for any others upon which it depends.
+ *
+ *
+ * This method is used to initialize {@link ProjectmgmtPackage#eINSTANCE} when that field is accessed. Clients
+ * should not invoke it directly. Instead, they should simply access that field to obtain the package.
+ *
+ * @see #eNS_URI
+ * @see #createPackageContents()
+ * @see #initializePackageContents()
+ * @generated
+ */
+ public static ProjectmgmtPackage init() {
+ if (isInited)
+ return (ProjectmgmtPackage) EPackage.Registry.INSTANCE.getEPackage(ProjectmgmtPackage.eNS_URI);
+
+ // Obtain or create and register package
+ Object registeredProjectmgmtPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
+ ProjectmgmtPackageImpl theProjectmgmtPackage = registeredProjectmgmtPackage instanceof ProjectmgmtPackageImpl ? (ProjectmgmtPackageImpl) registeredProjectmgmtPackage
+ : new ProjectmgmtPackageImpl();
+
+ isInited = true;
+
+ // Create package meta-data objects
+ theProjectmgmtPackage.createPackageContents();
+
+ // Initialize created meta-data
+ theProjectmgmtPackage.initializePackageContents();
+
+ // Mark meta-data to indicate it can't be changed
+ theProjectmgmtPackage.freeze();
+
+ // Update the registry and return the package
+ EPackage.Registry.INSTANCE.put(ProjectmgmtPackage.eNS_URI, theProjectmgmtPackage);
+ return theProjectmgmtPackage;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getOrganization() {
+ return this.organizationEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getOrganization_Name() {
+ return (EAttribute) this.organizationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getOrganization_OwnedProjects() {
+ return (EReference) this.organizationEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getOrganization_OwnedResourceFolders() {
+ return (EReference) this.organizationEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getResource() {
+ return this.resourceEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getResource_Name() {
+ return (EAttribute) this.resourceEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getResourceFolder() {
+ return this.resourceFolderEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getResourceFolder_Name() {
+ return (EAttribute) this.resourceFolderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getResourceFolder_OwnedResources() {
+ return (EReference) this.resourceFolderEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getResourceFolder_SubFolders() {
+ return (EReference) this.resourceFolderEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getTeam() {
+ return this.teamEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getTeam_Members() {
+ return (EReference) this.teamEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getInternalStakeholder() {
+ return this.internalStakeholderEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getExternalStakeholder() {
+ return this.externalStakeholderEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getExternalStakeholder_Goals() {
+ return (EAttribute) this.externalStakeholderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getPerson() {
+ return this.personEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPerson_Alias() {
+ return (EAttribute) this.personEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPerson_Biography() {
+ return (EAttribute) this.personEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getPerson_ImageUrl() {
+ return (EAttribute) this.personEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getAbstractTask() {
+ return this.abstractTaskEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractTask_Name() {
+ return (EAttribute) this.abstractTaskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractTask_Description() {
+ return (EAttribute) this.abstractTaskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractTask_StartTime() {
+ return (EAttribute) this.abstractTaskEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractTask_EndTime() {
+ return (EAttribute) this.abstractTaskEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractTask_Progress() {
+ return (EAttribute) this.abstractTaskEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getAbstractTask_ComputeStartEndDynamically() {
+ return (EAttribute) this.abstractTaskEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractTask_Tags() {
+ return (EReference) this.abstractTaskEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractTask_AssignedPersons() {
+ return (EReference) this.abstractTaskEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractTask_AssignedTeams() {
+ return (EReference) this.abstractTaskEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getAbstractTask_SubTasks() {
+ return (EReference) this.abstractTaskEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getTagFolder() {
+ return this.tagFolderEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getTagFolder_Name() {
+ return (EAttribute) this.tagFolderEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getTagFolder_OwnedTags() {
+ return (EReference) this.tagFolderEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getTagFolder_SubFolders() {
+ return (EReference) this.tagFolderEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getTaskTag() {
+ return this.taskTagEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getTaskTag_Prefix() {
+ return (EAttribute) this.taskTagEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getTaskTag_Suffix() {
+ return (EAttribute) this.taskTagEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getTask() {
+ return this.taskEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getTask_Dependencies() {
+ return (EReference) this.taskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getObjective() {
+ return this.objectiveEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getObjective_OwnedKeyResults() {
+ return (EReference) this.objectiveEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getKeyResult() {
+ return this.keyResultEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getProject() {
+ return this.projectEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_Name() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_OwnedWorkpackages() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_OwnedObjectives() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_OwnedTagFolders() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_OwnedRisks() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_Reference() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_Description() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_LeadingUnit() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_ParticipantUnits() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_PlannifiedClientCopilMeetings() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_MainProgramBrick() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_State() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(11);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_Clients() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(12);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_Partners() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(13);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_IsTransverse() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(14);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_Leader() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(15);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getProject_Members() {
+ return (EReference) this.projectEClass.getEStructuralFeatures().get(16);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_IsSensitive() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(17);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_ContractualStartDate() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(18);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_Duration() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(19);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_ContractualEndDate() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(20);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_EffectiveStartDate() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(21);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_EffectiveEndDate() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(22);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_ContractTermExtension() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(23);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_GlobalCost() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(24);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_FundingRate() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(25);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_Funding() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(26);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_Manpower() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(27);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_EOTP() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(28);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_StatisticOrder() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(29);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_InternalNeed() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(30);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getProject_ClientNeed() {
+ return (EAttribute) this.projectEClass.getEStructuralFeatures().get(31);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getWorkpackage() {
+ return this.workpackageEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackage_Name() {
+ return (EAttribute) this.workpackageEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackage_Description() {
+ return (EAttribute) this.workpackageEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackage_StartDate() {
+ return (EAttribute) this.workpackageEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackage_EndDate() {
+ return (EAttribute) this.workpackageEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getWorkpackage_Leader() {
+ return (EReference) this.workpackageEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getWorkpackage_Participants() {
+ return (EReference) this.workpackageEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackage_Effort() {
+ return (EAttribute) this.workpackageEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getWorkpackage_Outputs() {
+ return (EReference) this.workpackageEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getWorkpackage_OwnedTasks() {
+ return (EReference) this.workpackageEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getWorkpackage_OwnedObjectives() {
+ return (EReference) this.workpackageEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackage_Progress() {
+ return (EAttribute) this.workpackageEClass.getEStructuralFeatures().get(10);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getWorkpackageArtefact() {
+ return this.workpackageArtefactEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_Name() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_Description() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_Nature() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_PlannedDeadline() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_EffectiveDeadLine() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_IsInvoiceTrigger() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_InvoiceAmount() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getWorkpackageArtefact_Responsible() {
+ return (EReference) this.workpackageArtefactEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_Version() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(8);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getWorkpackageArtefact_IsObsolete() {
+ return (EAttribute) this.workpackageArtefactEClass.getEStructuralFeatures().get(9);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EClass getRisk() {
+ return this.riskEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRisk_Kind() {
+ return (EAttribute) this.riskEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRisk_Description() {
+ return (EAttribute) this.riskEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRisk_Criticity() {
+ return (EAttribute) this.riskEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRisk_Action() {
+ return (EAttribute) this.riskEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getRisk_Responsible() {
+ return (EReference) this.riskEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRisk_OperationDate() {
+ return (EAttribute) this.riskEClass.getEStructuralFeatures().get(5);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EAttribute getRisk_State() {
+ return (EAttribute) this.riskEClass.getEStructuralFeatures().get(6);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EReference getRisk_Workpackages() {
+ return (EReference) this.riskEClass.getEStructuralFeatures().get(7);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getWorkpackageArtefactNature() {
+ return this.workpackageArtefactNatureEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getRiskKind() {
+ return this.riskKindEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getRiskState() {
+ return this.riskStateEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EEnum getProjectState() {
+ return this.projectStateEEnum;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getInstant() {
+ return this.instantEDataType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EDataType getDate() {
+ return this.dateEDataType;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public ProjectmgmtFactory getProjectmgmtFactory() {
+ return (ProjectmgmtFactory) this.getEFactoryInstance();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isCreated = false;
+
+ /**
+ * Creates the meta-model objects for the package. This method is guarded to have no affect on any invocation but
+ * its first.
+ *
+ * @generated
+ */
+ public void createPackageContents() {
+ if (this.isCreated)
+ return;
+ this.isCreated = true;
+
+ // Create classes and their features
+ this.organizationEClass = this.createEClass(ORGANIZATION);
+ this.createEAttribute(this.organizationEClass, ORGANIZATION__NAME);
+ this.createEReference(this.organizationEClass, ORGANIZATION__OWNED_PROJECTS);
+ this.createEReference(this.organizationEClass, ORGANIZATION__OWNED_RESOURCE_FOLDERS);
+
+ this.resourceEClass = this.createEClass(RESOURCE);
+ this.createEAttribute(this.resourceEClass, RESOURCE__NAME);
+
+ this.resourceFolderEClass = this.createEClass(RESOURCE_FOLDER);
+ this.createEAttribute(this.resourceFolderEClass, RESOURCE_FOLDER__NAME);
+ this.createEReference(this.resourceFolderEClass, RESOURCE_FOLDER__OWNED_RESOURCES);
+ this.createEReference(this.resourceFolderEClass, RESOURCE_FOLDER__SUB_FOLDERS);
+
+ this.teamEClass = this.createEClass(TEAM);
+ this.createEReference(this.teamEClass, TEAM__MEMBERS);
+
+ this.internalStakeholderEClass = this.createEClass(INTERNAL_STAKEHOLDER);
+
+ this.externalStakeholderEClass = this.createEClass(EXTERNAL_STAKEHOLDER);
+ this.createEAttribute(this.externalStakeholderEClass, EXTERNAL_STAKEHOLDER__GOALS);
+
+ this.personEClass = this.createEClass(PERSON);
+ this.createEAttribute(this.personEClass, PERSON__ALIAS);
+ this.createEAttribute(this.personEClass, PERSON__BIOGRAPHY);
+ this.createEAttribute(this.personEClass, PERSON__IMAGE_URL);
+
+ this.abstractTaskEClass = this.createEClass(ABSTRACT_TASK);
+ this.createEAttribute(this.abstractTaskEClass, ABSTRACT_TASK__NAME);
+ this.createEAttribute(this.abstractTaskEClass, ABSTRACT_TASK__DESCRIPTION);
+ this.createEAttribute(this.abstractTaskEClass, ABSTRACT_TASK__START_TIME);
+ this.createEAttribute(this.abstractTaskEClass, ABSTRACT_TASK__END_TIME);
+ this.createEAttribute(this.abstractTaskEClass, ABSTRACT_TASK__PROGRESS);
+ this.createEAttribute(this.abstractTaskEClass, ABSTRACT_TASK__COMPUTE_START_END_DYNAMICALLY);
+ this.createEReference(this.abstractTaskEClass, ABSTRACT_TASK__TAGS);
+ this.createEReference(this.abstractTaskEClass, ABSTRACT_TASK__ASSIGNED_PERSONS);
+ this.createEReference(this.abstractTaskEClass, ABSTRACT_TASK__ASSIGNED_TEAMS);
+ this.createEReference(this.abstractTaskEClass, ABSTRACT_TASK__SUB_TASKS);
+
+ this.tagFolderEClass = this.createEClass(TAG_FOLDER);
+ this.createEAttribute(this.tagFolderEClass, TAG_FOLDER__NAME);
+ this.createEReference(this.tagFolderEClass, TAG_FOLDER__OWNED_TAGS);
+ this.createEReference(this.tagFolderEClass, TAG_FOLDER__SUB_FOLDERS);
+
+ this.taskTagEClass = this.createEClass(TASK_TAG);
+ this.createEAttribute(this.taskTagEClass, TASK_TAG__PREFIX);
+ this.createEAttribute(this.taskTagEClass, TASK_TAG__SUFFIX);
+
+ this.taskEClass = this.createEClass(TASK);
+ this.createEReference(this.taskEClass, TASK__DEPENDENCIES);
+
+ this.objectiveEClass = this.createEClass(OBJECTIVE);
+ this.createEReference(this.objectiveEClass, OBJECTIVE__OWNED_KEY_RESULTS);
+
+ this.keyResultEClass = this.createEClass(KEY_RESULT);
+
+ this.projectEClass = this.createEClass(PROJECT);
+ this.createEAttribute(this.projectEClass, PROJECT__NAME);
+ this.createEReference(this.projectEClass, PROJECT__OWNED_WORKPACKAGES);
+ this.createEReference(this.projectEClass, PROJECT__OWNED_OBJECTIVES);
+ this.createEReference(this.projectEClass, PROJECT__OWNED_TAG_FOLDERS);
+ this.createEReference(this.projectEClass, PROJECT__OWNED_RISKS);
+ this.createEAttribute(this.projectEClass, PROJECT__REFERENCE);
+ this.createEAttribute(this.projectEClass, PROJECT__DESCRIPTION);
+ this.createEReference(this.projectEClass, PROJECT__LEADING_UNIT);
+ this.createEReference(this.projectEClass, PROJECT__PARTICIPANT_UNITS);
+ this.createEAttribute(this.projectEClass, PROJECT__PLANNIFIED_CLIENT_COPIL_MEETINGS);
+ this.createEAttribute(this.projectEClass, PROJECT__MAIN_PROGRAM_BRICK);
+ this.createEAttribute(this.projectEClass, PROJECT__STATE);
+ this.createEReference(this.projectEClass, PROJECT__CLIENTS);
+ this.createEReference(this.projectEClass, PROJECT__PARTNERS);
+ this.createEAttribute(this.projectEClass, PROJECT__IS_TRANSVERSE);
+ this.createEReference(this.projectEClass, PROJECT__LEADER);
+ this.createEReference(this.projectEClass, PROJECT__MEMBERS);
+ this.createEAttribute(this.projectEClass, PROJECT__IS_SENSITIVE);
+ this.createEAttribute(this.projectEClass, PROJECT__CONTRACTUAL_START_DATE);
+ this.createEAttribute(this.projectEClass, PROJECT__DURATION);
+ this.createEAttribute(this.projectEClass, PROJECT__CONTRACTUAL_END_DATE);
+ this.createEAttribute(this.projectEClass, PROJECT__EFFECTIVE_START_DATE);
+ this.createEAttribute(this.projectEClass, PROJECT__EFFECTIVE_END_DATE);
+ this.createEAttribute(this.projectEClass, PROJECT__CONTRACT_TERM_EXTENSION);
+ this.createEAttribute(this.projectEClass, PROJECT__GLOBAL_COST);
+ this.createEAttribute(this.projectEClass, PROJECT__FUNDING_RATE);
+ this.createEAttribute(this.projectEClass, PROJECT__FUNDING);
+ this.createEAttribute(this.projectEClass, PROJECT__MANPOWER);
+ this.createEAttribute(this.projectEClass, PROJECT__EOTP);
+ this.createEAttribute(this.projectEClass, PROJECT__STATISTIC_ORDER);
+ this.createEAttribute(this.projectEClass, PROJECT__INTERNAL_NEED);
+ this.createEAttribute(this.projectEClass, PROJECT__CLIENT_NEED);
+
+ this.workpackageEClass = this.createEClass(WORKPACKAGE);
+ this.createEAttribute(this.workpackageEClass, WORKPACKAGE__NAME);
+ this.createEAttribute(this.workpackageEClass, WORKPACKAGE__DESCRIPTION);
+ this.createEAttribute(this.workpackageEClass, WORKPACKAGE__START_DATE);
+ this.createEAttribute(this.workpackageEClass, WORKPACKAGE__END_DATE);
+ this.createEReference(this.workpackageEClass, WORKPACKAGE__LEADER);
+ this.createEReference(this.workpackageEClass, WORKPACKAGE__PARTICIPANTS);
+ this.createEAttribute(this.workpackageEClass, WORKPACKAGE__EFFORT);
+ this.createEReference(this.workpackageEClass, WORKPACKAGE__OUTPUTS);
+ this.createEReference(this.workpackageEClass, WORKPACKAGE__OWNED_TASKS);
+ this.createEReference(this.workpackageEClass, WORKPACKAGE__OWNED_OBJECTIVES);
+ this.createEAttribute(this.workpackageEClass, WORKPACKAGE__PROGRESS);
+
+ this.workpackageArtefactEClass = this.createEClass(WORKPACKAGE_ARTEFACT);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__NAME);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__DESCRIPTION);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__NATURE);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__PLANNED_DEADLINE);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__EFFECTIVE_DEAD_LINE);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__IS_INVOICE_TRIGGER);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__INVOICE_AMOUNT);
+ this.createEReference(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__RESPONSIBLE);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__VERSION);
+ this.createEAttribute(this.workpackageArtefactEClass, WORKPACKAGE_ARTEFACT__IS_OBSOLETE);
+
+ this.riskEClass = this.createEClass(RISK);
+ this.createEAttribute(this.riskEClass, RISK__KIND);
+ this.createEAttribute(this.riskEClass, RISK__DESCRIPTION);
+ this.createEAttribute(this.riskEClass, RISK__CRITICITY);
+ this.createEAttribute(this.riskEClass, RISK__ACTION);
+ this.createEReference(this.riskEClass, RISK__RESPONSIBLE);
+ this.createEAttribute(this.riskEClass, RISK__OPERATION_DATE);
+ this.createEAttribute(this.riskEClass, RISK__STATE);
+ this.createEReference(this.riskEClass, RISK__WORKPACKAGES);
+
+ // Create enums
+ this.workpackageArtefactNatureEEnum = this.createEEnum(WORKPACKAGE_ARTEFACT_NATURE);
+ this.riskKindEEnum = this.createEEnum(RISK_KIND);
+ this.riskStateEEnum = this.createEEnum(RISK_STATE);
+ this.projectStateEEnum = this.createEEnum(PROJECT_STATE);
+
+ // Create data types
+ this.instantEDataType = this.createEDataType(INSTANT);
+ this.dateEDataType = this.createEDataType(DATE);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private boolean isInitialized = false;
+
+ /**
+ * Complete the initialization of the package and its meta-model. This method is guarded to have no affect on any
+ * invocation but its first.
+ *
+ * @generated
+ */
+ public void initializePackageContents() {
+ if (this.isInitialized)
+ return;
+ this.isInitialized = true;
+
+ // Initialize package
+ this.setName(eNAME);
+ this.setNsPrefix(eNS_PREFIX);
+ this.setNsURI(eNS_URI);
+
+ // Create type parameters
+
+ // Set bounds for type parameters
+
+ // Add supertypes to classes
+ this.teamEClass.getESuperTypes().add(this.getResource());
+ this.internalStakeholderEClass.getESuperTypes().add(this.getResource());
+ this.externalStakeholderEClass.getESuperTypes().add(this.getResource());
+ this.personEClass.getESuperTypes().add(this.getResource());
+ this.taskEClass.getESuperTypes().add(this.getAbstractTask());
+ this.objectiveEClass.getESuperTypes().add(this.getAbstractTask());
+ this.keyResultEClass.getESuperTypes().add(this.getAbstractTask());
+
+ // Initialize classes and features; add operations and parameters
+ this.initEClass(this.organizationEClass, Organization.class, "Organization", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getOrganization_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, Organization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getOrganization_OwnedProjects(), this.getProject(), null, "ownedProjects", null, 0, -1, Organization.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getOrganization_OwnedResourceFolders(), this.getResourceFolder(), null, "ownedResourceFolders", null, 0, -1, Organization.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.resourceEClass, Resource.class, "Resource", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getResource_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.resourceFolderEClass, ResourceFolder.class, "ResourceFolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getResourceFolder_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, ResourceFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getResourceFolder_OwnedResources(), this.getResource(), null, "ownedResources", null, 0, -1, ResourceFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getResourceFolder_SubFolders(), this.getResourceFolder(), null, "subFolders", null, 0, -1, ResourceFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.teamEClass, Team.class, "Team", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEReference(this.getTeam_Members(), this.getPerson(), null, "members", null, 0, -1, Team.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.internalStakeholderEClass, InternalStakeholder.class, "InternalStakeholder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ this.initEClass(this.externalStakeholderEClass, ExternalStakeholder.class, "ExternalStakeholder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getExternalStakeholder_Goals(), this.ecorePackage.getEString(), "goals", null, 0, -1, ExternalStakeholder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.personEClass, Person.class, "Person", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getPerson_Alias(), this.ecorePackage.getEString(), "alias", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getPerson_Biography(), this.ecorePackage.getEString(), "biography", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getPerson_ImageUrl(), this.ecorePackage.getEString(), "imageUrl", null, 0, 1, Person.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.abstractTaskEClass, AbstractTask.class, "AbstractTask", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getAbstractTask_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getAbstractTask_Description(), this.ecorePackage.getEString(), "description", null, 0, 1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getAbstractTask_StartTime(), this.getInstant(), "startTime", null, 0, 1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getAbstractTask_EndTime(), this.getInstant(), "endTime", null, 0, 1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getAbstractTask_Progress(), this.ecorePackage.getEInt(), "progress", null, 0, 1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getAbstractTask_ComputeStartEndDynamically(), this.ecorePackage.getEBoolean(), "computeStartEndDynamically", "false", 0, 1, AbstractTask.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getAbstractTask_Tags(), this.getTaskTag(), null, "tags", null, 0, -1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getAbstractTask_AssignedPersons(), this.getPerson(), null, "assignedPersons", null, 0, -1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getAbstractTask_AssignedTeams(), this.getTeam(), null, "assignedTeams", null, 0, -1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getAbstractTask_SubTasks(), this.getTask(), null, "subTasks", null, 0, -1, AbstractTask.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.tagFolderEClass, TagFolder.class, "TagFolder", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getTagFolder_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, TagFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getTagFolder_OwnedTags(), this.getTaskTag(), null, "ownedTags", null, 0, -1, TagFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getTagFolder_SubFolders(), this.getTagFolder(), null, "subFolders", null, 0, -1, TagFolder.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.taskTagEClass, TaskTag.class, "TaskTag", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getTaskTag_Prefix(), this.ecorePackage.getEString(), "prefix", null, 0, 1, TaskTag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getTaskTag_Suffix(), this.ecorePackage.getEString(), "suffix", null, 0, 1, TaskTag.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.taskEClass, Task.class, "Task", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEReference(this.getTask_Dependencies(), this.getTask(), null, "dependencies", null, 0, -1, Task.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.objectiveEClass, Objective.class, "Objective", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEReference(this.getObjective_OwnedKeyResults(), this.getKeyResult(), null, "ownedKeyResults", null, 0, -1, Objective.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.keyResultEClass, KeyResult.class, "KeyResult", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ this.initEClass(this.projectEClass, Project.class, "Project", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getProject_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_OwnedWorkpackages(), this.getWorkpackage(), null, "ownedWorkpackages", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_OwnedObjectives(), this.getObjective(), null, "ownedObjectives", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_OwnedTagFolders(), this.getTagFolder(), null, "ownedTagFolders", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_OwnedRisks(), this.getRisk(), null, "ownedRisks", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_Reference(), this.ecorePackage.getEString(), "reference", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_Description(), this.ecorePackage.getEString(), "description", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_LeadingUnit(), this.getInternalStakeholder(), null, "leadingUnit", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_ParticipantUnits(), this.getInternalStakeholder(), null, "participantUnits", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_PlannifiedClientCopilMeetings(), this.ecorePackage.getEBooleanObject(), "plannifiedClientCopilMeetings", null, 0, 1, Project.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_MainProgramBrick(), this.ecorePackage.getEString(), "mainProgramBrick", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_State(), this.getProjectState(), "state", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_Clients(), this.getExternalStakeholder(), null, "clients", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_Partners(), this.getExternalStakeholder(), null, "partners", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_IsTransverse(), this.ecorePackage.getEBooleanObject(), "isTransverse", null, 0, 1, Project.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_Leader(), this.getPerson(), null, "leader", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getProject_Members(), this.getPerson(), null, "members", null, 0, -1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_IsSensitive(), this.ecorePackage.getEBooleanObject(), "isSensitive", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_ContractualStartDate(), this.getDate(), "contractualStartDate", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_Duration(), this.ecorePackage.getEIntegerObject(), "duration", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_ContractualEndDate(), this.getDate(), "contractualEndDate", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_EffectiveStartDate(), this.getDate(), "effectiveStartDate", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_EffectiveEndDate(), this.getDate(), "effectiveEndDate", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_ContractTermExtension(), this.ecorePackage.getEIntegerObject(), "contractTermExtension", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_GlobalCost(), this.ecorePackage.getEDoubleObject(), "globalCost", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_FundingRate(), this.ecorePackage.getEDoubleObject(), "fundingRate", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_Funding(), this.ecorePackage.getEDoubleObject(), "funding", null, 0, 1, Project.class, IS_TRANSIENT, IS_VOLATILE, !IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_Manpower(), this.ecorePackage.getEIntegerObject(), "manpower", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_EOTP(), this.ecorePackage.getEString(), "eOTP", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_StatisticOrder(), this.ecorePackage.getEString(), "statisticOrder", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_InternalNeed(), this.ecorePackage.getEString(), "internalNeed", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getProject_ClientNeed(), this.ecorePackage.getEString(), "clientNeed", null, 0, 1, Project.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.workpackageEClass, Workpackage.class, "Workpackage", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getWorkpackage_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackage_Description(), this.ecorePackage.getEString(), "description", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackage_StartDate(), this.getDate(), "startDate", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackage_EndDate(), this.getDate(), "endDate", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getWorkpackage_Leader(), this.getPerson(), null, "leader", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getWorkpackage_Participants(), this.getPerson(), null, "participants", null, 0, -1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackage_Effort(), this.ecorePackage.getEIntegerObject(), "effort", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE,
+ !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getWorkpackage_Outputs(), this.getWorkpackageArtefact(), null, "outputs", null, 0, -1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getWorkpackage_OwnedTasks(), this.getTask(), null, "ownedTasks", null, 0, -1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getWorkpackage_OwnedObjectives(), this.getObjective(), null, "ownedObjectives", null, 0, -1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackage_Progress(), this.ecorePackage.getEInt(), "progress", null, 0, 1, Workpackage.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.workpackageArtefactEClass, WorkpackageArtefact.class, "WorkpackageArtefact", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getWorkpackageArtefact_Name(), this.ecorePackage.getEString(), "name", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_Description(), this.ecorePackage.getEString(), "description", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_Nature(), this.getWorkpackageArtefactNature(), "nature", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_PlannedDeadline(), this.getDate(), "plannedDeadline", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_EffectiveDeadLine(), this.getDate(), "effectiveDeadLine", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_IsInvoiceTrigger(), this.ecorePackage.getEBooleanObject(), "isInvoiceTrigger", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT,
+ !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_InvoiceAmount(), this.ecorePackage.getEIntegerObject(), "invoiceAmount", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getWorkpackageArtefact_Responsible(), this.getPerson(), null, "responsible", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_Version(), this.ecorePackage.getEString(), "version", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE,
+ !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getWorkpackageArtefact_IsObsolete(), this.ecorePackage.getEBooleanObject(), "isObsolete", null, 0, 1, WorkpackageArtefact.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ this.initEClass(this.riskEClass, Risk.class, "Risk", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ this.initEAttribute(this.getRisk_Kind(), this.getRiskKind(), "kind", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ this.initEAttribute(this.getRisk_Description(), this.ecorePackage.getEString(), "description", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getRisk_Criticity(), this.ecorePackage.getEIntegerObject(), "criticity", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getRisk_Action(), this.ecorePackage.getEString(), "action", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEReference(this.getRisk_Responsible(), this.getPerson(), null, "responsible", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getRisk_OperationDate(), this.getDate(), "operationDate", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+ this.initEAttribute(this.getRisk_State(), this.getRiskState(), "state", null, 0, 1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
+ IS_ORDERED);
+ this.initEReference(this.getRisk_Workpackages(), this.getWorkpackage(), null, "workpackages", null, 0, -1, Risk.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ // Initialize enums and add enum literals
+ this.initEEnum(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.class, "WorkpackageArtefactNature");
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.DELIVRABLE);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.DECISIONAL);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.PROJECT_REVIEW);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.ACTION);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.INVOICING);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.EXPENSE_STATEMENT);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.CLIENT_SATISFACTION);
+ this.addEEnumLiteral(this.workpackageArtefactNatureEEnum, WorkpackageArtefactNature.OTHER);
+
+ this.initEEnum(this.riskKindEEnum, RiskKind.class, "RiskKind");
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MANPOWER);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MACHINE);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MATERIAL);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MEASUREMENT);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.METHOD);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MISSION);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MANAGEMENT);
+ this.addEEnumLiteral(this.riskKindEEnum, RiskKind.MAINTENANCE);
+
+ this.initEEnum(this.riskStateEEnum, RiskState.class, "RiskState");
+ this.addEEnumLiteral(this.riskStateEEnum, RiskState.ON_GOING);
+ this.addEEnumLiteral(this.riskStateEEnum, RiskState.UNDER_INSTRUCTION);
+ this.addEEnumLiteral(this.riskStateEEnum, RiskState.STOP_BEFORE_TERM);
+ this.addEEnumLiteral(this.riskStateEEnum, RiskState.COMPLETED);
+
+ this.initEEnum(this.projectStateEEnum, ProjectState.class, "ProjectState");
+ this.addEEnumLiteral(this.projectStateEEnum, ProjectState.ON_GOING);
+ this.addEEnumLiteral(this.projectStateEEnum, ProjectState.UNDER_INSTRUCTION);
+ this.addEEnumLiteral(this.projectStateEEnum, ProjectState.STOP_BEFORE_TERM);
+ this.addEEnumLiteral(this.projectStateEEnum, ProjectState.COMPLETED);
+
+ // Initialize data types
+ this.initEDataType(this.instantEDataType, Instant.class, "Instant", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+ this.initEDataType(this.dateEDataType, LocalDate.class, "Date", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
+
+ // Create resource
+ this.createResource(eNS_URI);
+ }
+
+} // ProjectmgmtPackageImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ResourceFolderImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ResourceFolderImpl.java
new file mode 100644
index 0000000..09b9dbd
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ResourceFolderImpl.java
@@ -0,0 +1,275 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Resource;
+import fr.cea.deeplab.projectmgmt.ResourceFolder;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * An implementation of the model object 'Resource Folder'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.ResourceFolderImpl#getName Name}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.ResourceFolderImpl#getOwnedResources Owned Resources}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.ResourceFolderImpl#getSubFolders Sub Folders}
+ *
+ *
+ * @generated
+ */
+public class ResourceFolderImpl extends MinimalEObjectImpl.Container implements ResourceFolder {
+ /**
+ * The default value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOwnedResources() Owned Resources}' containment reference list.
+ *
+ * @see #getOwnedResources()
+ * @generated
+ * @ordered
+ */
+ protected EList ownedResources;
+
+ /**
+ * The cached value of the '{@link #getSubFolders() Sub Folders}' containment reference list.
+ *
+ * @see #getSubFolders()
+ * @generated
+ * @ordered
+ */
+ protected EList subFolders;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ResourceFolderImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.RESOURCE_FOLDER;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = this.name;
+ this.name = newName;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RESOURCE_FOLDER__NAME, oldName, this.name));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getOwnedResources() {
+ if (this.ownedResources == null) {
+ this.ownedResources = new EObjectContainmentEList<>(Resource.class, this, ProjectmgmtPackage.RESOURCE_FOLDER__OWNED_RESOURCES);
+ }
+ return this.ownedResources;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getSubFolders() {
+ if (this.subFolders == null) {
+ this.subFolders = new EObjectContainmentEList<>(ResourceFolder.class, this, ProjectmgmtPackage.RESOURCE_FOLDER__SUB_FOLDERS);
+ }
+ return this.subFolders;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE_FOLDER__OWNED_RESOURCES:
+ return ((InternalEList>) this.getOwnedResources()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.RESOURCE_FOLDER__SUB_FOLDERS:
+ return ((InternalEList>) this.getSubFolders()).basicRemove(otherEnd, msgs);
+ default:
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE_FOLDER__NAME:
+ return this.getName();
+ case ProjectmgmtPackage.RESOURCE_FOLDER__OWNED_RESOURCES:
+ return this.getOwnedResources();
+ case ProjectmgmtPackage.RESOURCE_FOLDER__SUB_FOLDERS:
+ return this.getSubFolders();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE_FOLDER__NAME:
+ this.setName((String) newValue);
+ return;
+ case ProjectmgmtPackage.RESOURCE_FOLDER__OWNED_RESOURCES:
+ this.getOwnedResources().clear();
+ this.getOwnedResources().addAll((Collection extends Resource>) newValue);
+ return;
+ case ProjectmgmtPackage.RESOURCE_FOLDER__SUB_FOLDERS:
+ this.getSubFolders().clear();
+ this.getSubFolders().addAll((Collection extends ResourceFolder>) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE_FOLDER__NAME:
+ this.setName(NAME_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RESOURCE_FOLDER__OWNED_RESOURCES:
+ this.getOwnedResources().clear();
+ return;
+ case ProjectmgmtPackage.RESOURCE_FOLDER__SUB_FOLDERS:
+ this.getSubFolders().clear();
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE_FOLDER__NAME:
+ return NAME_EDEFAULT == null ? this.name != null : !NAME_EDEFAULT.equals(this.name);
+ case ProjectmgmtPackage.RESOURCE_FOLDER__OWNED_RESOURCES:
+ return this.ownedResources != null && !this.ownedResources.isEmpty();
+ case ProjectmgmtPackage.RESOURCE_FOLDER__SUB_FOLDERS:
+ return this.subFolders != null && !this.subFolders.isEmpty();
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (name: ");
+ result.append(this.name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ResourceFolderImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ResourceImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ResourceImpl.java
new file mode 100644
index 0000000..ce986c6
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/ResourceImpl.java
@@ -0,0 +1,178 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Resource;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * An implementation of the model object 'Resource'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.ResourceImpl#getName Name}
+ *
+ *
+ * @generated
+ */
+public abstract class ResourceImpl extends MinimalEObjectImpl.Container implements Resource {
+ /**
+ * The default value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ResourceImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.RESOURCE;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = this.name;
+ this.name = newName;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RESOURCE__NAME, oldName, this.name));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE__NAME:
+ return this.getName();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE__NAME:
+ this.setName((String) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE__NAME:
+ this.setName(NAME_EDEFAULT);
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RESOURCE__NAME:
+ return NAME_EDEFAULT == null ? this.name != null : !NAME_EDEFAULT.equals(this.name);
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (name: ");
+ result.append(this.name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // ResourceImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/RiskImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/RiskImpl.java
new file mode 100644
index 0000000..44459a9
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/RiskImpl.java
@@ -0,0 +1,565 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Risk;
+import fr.cea.deeplab.projectmgmt.RiskKind;
+import fr.cea.deeplab.projectmgmt.RiskState;
+import fr.cea.deeplab.projectmgmt.Workpackage;
+
+import java.time.LocalDate;
+import java.util.Collection;
+import java.util.Objects;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * An implementation of the model object 'Risk'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getKind Kind}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getDescription Description}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getCriticity Criticity}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getAction Action}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getResponsible Responsible}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getOperationDate Operation Date}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getState State}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.RiskImpl#getWorkpackages Workpackages}
+ *
+ *
+ * @generated
+ */
+public class RiskImpl extends MinimalEObjectImpl.Container implements Risk {
+ /**
+ * The default value of the '{@link #getKind() Kind}' attribute.
+ *
+ * @see #getKind()
+ * @generated NOT
+ * @ordered
+ */
+ protected static final RiskKind KIND_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getKind() Kind}' attribute.
+ *
+ * @see #getKind()
+ * @generated
+ * @ordered
+ */
+ protected RiskKind kind = KIND_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() Description}' attribute.
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() Description}' attribute.
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getCriticity() Criticity}' attribute.
+ *
+ * @see #getCriticity()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer CRITICITY_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getCriticity() Criticity}' attribute.
+ *
+ * @see #getCriticity()
+ * @generated
+ * @ordered
+ */
+ protected Integer criticity = CRITICITY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getAction() Action}' attribute.
+ *
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected static final String ACTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getAction() Action}' attribute.
+ *
+ * @see #getAction()
+ * @generated
+ * @ordered
+ */
+ protected String action = ACTION_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getResponsible() Responsible}' reference.
+ *
+ * @see #getResponsible()
+ * @generated
+ * @ordered
+ */
+ protected Person responsible;
+
+ /**
+ * The default value of the '{@link #getOperationDate() Operation Date}' attribute.
+ *
+ *
+ * @see #getOperationDate()
+ * @generated
+ * @ordered
+ */
+ protected static final LocalDate OPERATION_DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getOperationDate() Operation Date}' attribute.
+ *
+ *
+ * @see #getOperationDate()
+ * @generated
+ * @ordered
+ */
+ protected LocalDate operationDate = OPERATION_DATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getState() State}' attribute.
+ *
+ * @see #getState()
+ * @generated NOT
+ * @ordered
+ */
+ protected static final RiskState STATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getState() State}' attribute.
+ *
+ * @see #getState()
+ * @generated
+ * @ordered
+ */
+ protected RiskState state = STATE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getWorkpackages() Workpackages}' reference list.
+ *
+ * @see #getWorkpackages()
+ * @generated
+ * @ordered
+ */
+ protected EList workpackages;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected RiskImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.RISK;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public RiskKind getKind() {
+ return this.kind;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setKind(RiskKind newKind) {
+ RiskKind oldKind = this.kind;
+ this.kind = newKind == null ? KIND_EDEFAULT : newKind;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__KIND, oldKind, this.kind));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getDescription() {
+ return this.description;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setDescription(String newDescription) {
+ String oldDescription = this.description;
+ this.description = newDescription;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__DESCRIPTION, oldDescription, this.description));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Integer getCriticity() {
+ return this.criticity;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setCriticity(Integer newCriticity) {
+ Integer oldCriticity = this.criticity;
+ this.criticity = newCriticity;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__CRITICITY, oldCriticity, this.criticity));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getAction() {
+ return this.action;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setAction(String newAction) {
+ String oldAction = this.action;
+ this.action = newAction;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__ACTION, oldAction, this.action));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Person getResponsible() {
+ if (this.responsible != null && this.responsible.eIsProxy()) {
+ InternalEObject oldResponsible = (InternalEObject) this.responsible;
+ this.responsible = (Person) this.eResolveProxy(oldResponsible);
+ if (this.responsible != oldResponsible) {
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectmgmtPackage.RISK__RESPONSIBLE, oldResponsible, this.responsible));
+ }
+ }
+ return this.responsible;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Person basicGetResponsible() {
+ return this.responsible;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setResponsible(Person newResponsible) {
+ Person oldResponsible = this.responsible;
+ this.responsible = newResponsible;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__RESPONSIBLE, oldResponsible, this.responsible));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getOperationDate() {
+ return this.operationDate;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setOperationDate(LocalDate newOperationDate) {
+ LocalDate oldOperationDate = this.operationDate;
+ this.operationDate = newOperationDate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__OPERATION_DATE, oldOperationDate, this.operationDate));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public RiskState getState() {
+ return this.state;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setState(RiskState newState) {
+ RiskState oldState = this.state;
+ this.state = newState == null ? STATE_EDEFAULT : newState;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.RISK__STATE, oldState, this.state));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getWorkpackages() {
+ if (this.workpackages == null) {
+ this.workpackages = new EObjectResolvingEList<>(Workpackage.class, this, ProjectmgmtPackage.RISK__WORKPACKAGES);
+ }
+ return this.workpackages;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RISK__KIND:
+ return this.getKind();
+ case ProjectmgmtPackage.RISK__DESCRIPTION:
+ return this.getDescription();
+ case ProjectmgmtPackage.RISK__CRITICITY:
+ return this.getCriticity();
+ case ProjectmgmtPackage.RISK__ACTION:
+ return this.getAction();
+ case ProjectmgmtPackage.RISK__RESPONSIBLE:
+ if (resolve)
+ return this.getResponsible();
+ return this.basicGetResponsible();
+ case ProjectmgmtPackage.RISK__OPERATION_DATE:
+ return this.getOperationDate();
+ case ProjectmgmtPackage.RISK__STATE:
+ return this.getState();
+ case ProjectmgmtPackage.RISK__WORKPACKAGES:
+ return this.getWorkpackages();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RISK__KIND:
+ this.setKind((RiskKind) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__DESCRIPTION:
+ this.setDescription((String) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__CRITICITY:
+ this.setCriticity((Integer) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__ACTION:
+ this.setAction((String) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__RESPONSIBLE:
+ this.setResponsible((Person) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__OPERATION_DATE:
+ this.setOperationDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__STATE:
+ this.setState((RiskState) newValue);
+ return;
+ case ProjectmgmtPackage.RISK__WORKPACKAGES:
+ this.getWorkpackages().clear();
+ this.getWorkpackages().addAll((Collection extends Workpackage>) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RISK__KIND:
+ this.setKind(KIND_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RISK__DESCRIPTION:
+ this.setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RISK__CRITICITY:
+ this.setCriticity(CRITICITY_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RISK__ACTION:
+ this.setAction(ACTION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RISK__RESPONSIBLE:
+ this.setResponsible(null);
+ return;
+ case ProjectmgmtPackage.RISK__OPERATION_DATE:
+ this.setOperationDate(OPERATION_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RISK__STATE:
+ this.setState(STATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.RISK__WORKPACKAGES:
+ this.getWorkpackages().clear();
+ return;
+ default:
+ super.eUnset(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.RISK__KIND:
+ return this.kind != KIND_EDEFAULT;
+ case ProjectmgmtPackage.RISK__DESCRIPTION:
+ return !Objects.equals(DESCRIPTION_EDEFAULT, this.description);
+ case ProjectmgmtPackage.RISK__CRITICITY:
+ return !Objects.equals(CRITICITY_EDEFAULT, this.criticity);
+ case ProjectmgmtPackage.RISK__ACTION:
+ return !Objects.equals(ACTION_EDEFAULT, this.action);
+ case ProjectmgmtPackage.RISK__RESPONSIBLE:
+ return this.responsible != null;
+ case ProjectmgmtPackage.RISK__OPERATION_DATE:
+ return !Objects.equals(OPERATION_DATE_EDEFAULT, this.operationDate);
+ case ProjectmgmtPackage.RISK__STATE:
+ return this.state != STATE_EDEFAULT;
+ case ProjectmgmtPackage.RISK__WORKPACKAGES:
+ return this.workpackages != null && !this.workpackages.isEmpty();
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ String result = super.toString() + " (kind: "
+ + this.kind
+ + ", description: "
+ + this.description
+ + ", criticity: "
+ + this.criticity
+ + ", action: "
+ + this.action
+ + ", operationDate: "
+ + this.operationDate
+ + ", state: "
+ + this.state
+ + ')';
+ return result;
+ }
+
+} // RiskImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TagFolderImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TagFolderImpl.java
new file mode 100644
index 0000000..73a9bea
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TagFolderImpl.java
@@ -0,0 +1,274 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.TagFolder;
+import fr.cea.deeplab.projectmgmt.TaskTag;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * An implementation of the model object 'Tag Folder'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TagFolderImpl#getName Name}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TagFolderImpl#getOwnedTags Owned Tags}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TagFolderImpl#getSubFolders Sub Folders}
+ *
+ *
+ * @generated
+ */
+public class TagFolderImpl extends MinimalEObjectImpl.Container implements TagFolder {
+ /**
+ * The default value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOwnedTags() Owned Tags}' containment reference list.
+ *
+ * @see #getOwnedTags()
+ * @generated
+ * @ordered
+ */
+ protected EList ownedTags;
+
+ /**
+ * The cached value of the '{@link #getSubFolders() Sub Folders}' containment reference list.
+ *
+ * @see #getSubFolders()
+ * @generated
+ * @ordered
+ */
+ protected EList subFolders;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected TagFolderImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.TAG_FOLDER;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = this.name;
+ this.name = newName;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.TAG_FOLDER__NAME, oldName, this.name));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getOwnedTags() {
+ if (this.ownedTags == null) {
+ this.ownedTags = new EObjectContainmentEList<>(TaskTag.class, this, ProjectmgmtPackage.TAG_FOLDER__OWNED_TAGS);
+ }
+ return this.ownedTags;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getSubFolders() {
+ if (this.subFolders == null) {
+ this.subFolders = new EObjectContainmentEList<>(TagFolder.class, this, ProjectmgmtPackage.TAG_FOLDER__SUB_FOLDERS);
+ }
+ return this.subFolders;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TAG_FOLDER__OWNED_TAGS:
+ return ((InternalEList>) this.getOwnedTags()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.TAG_FOLDER__SUB_FOLDERS:
+ return ((InternalEList>) this.getSubFolders()).basicRemove(otherEnd, msgs);
+ default:
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TAG_FOLDER__NAME:
+ return this.getName();
+ case ProjectmgmtPackage.TAG_FOLDER__OWNED_TAGS:
+ return this.getOwnedTags();
+ case ProjectmgmtPackage.TAG_FOLDER__SUB_FOLDERS:
+ return this.getSubFolders();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TAG_FOLDER__NAME:
+ this.setName((String) newValue);
+ return;
+ case ProjectmgmtPackage.TAG_FOLDER__OWNED_TAGS:
+ this.getOwnedTags().clear();
+ this.getOwnedTags().addAll((Collection extends TaskTag>) newValue);
+ return;
+ case ProjectmgmtPackage.TAG_FOLDER__SUB_FOLDERS:
+ this.getSubFolders().clear();
+ this.getSubFolders().addAll((Collection extends TagFolder>) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TAG_FOLDER__NAME:
+ this.setName(NAME_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.TAG_FOLDER__OWNED_TAGS:
+ this.getOwnedTags().clear();
+ return;
+ case ProjectmgmtPackage.TAG_FOLDER__SUB_FOLDERS:
+ this.getSubFolders().clear();
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TAG_FOLDER__NAME:
+ return NAME_EDEFAULT == null ? this.name != null : !NAME_EDEFAULT.equals(this.name);
+ case ProjectmgmtPackage.TAG_FOLDER__OWNED_TAGS:
+ return this.ownedTags != null && !this.ownedTags.isEmpty();
+ case ProjectmgmtPackage.TAG_FOLDER__SUB_FOLDERS:
+ return this.subFolders != null && !this.subFolders.isEmpty();
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (name: ");
+ result.append(this.name);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TagFolderImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TaskImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TaskImpl.java
new file mode 100644
index 0000000..30956a7
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TaskImpl.java
@@ -0,0 +1,144 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Task;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * An implementation of the model object 'Task'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TaskImpl#getDependencies Dependencies}
+ *
+ *
+ * @generated
+ */
+public class TaskImpl extends AbstractTaskImpl implements Task {
+ /**
+ * The cached value of the '{@link #getDependencies() Dependencies}' reference list.
+ *
+ * @see #getDependencies()
+ * @generated
+ * @ordered
+ */
+ protected EList dependencies;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected TaskImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.TASK;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getDependencies() {
+ if (this.dependencies == null) {
+ this.dependencies = new EObjectResolvingEList<>(Task.class, this, ProjectmgmtPackage.TASK__DEPENDENCIES);
+ }
+ return this.dependencies;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK__DEPENDENCIES:
+ return this.getDependencies();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK__DEPENDENCIES:
+ this.getDependencies().clear();
+ this.getDependencies().addAll((Collection extends Task>) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK__DEPENDENCIES:
+ this.getDependencies().clear();
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK__DEPENDENCIES:
+ return this.dependencies != null && !this.dependencies.isEmpty();
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+} // TaskImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TaskTagImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TaskTagImpl.java
new file mode 100644
index 0000000..54571b8
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TaskTagImpl.java
@@ -0,0 +1,234 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.TaskTag;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * An implementation of the model object 'Task Tag'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TaskTagImpl#getPrefix Prefix}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TaskTagImpl#getSuffix Suffix}
+ *
+ *
+ * @generated
+ */
+public class TaskTagImpl extends MinimalEObjectImpl.Container implements TaskTag {
+ /**
+ * The default value of the '{@link #getPrefix() Prefix}' attribute.
+ *
+ * @see #getPrefix()
+ * @generated
+ * @ordered
+ */
+ protected static final String PREFIX_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPrefix() Prefix}' attribute.
+ *
+ * @see #getPrefix()
+ * @generated
+ * @ordered
+ */
+ protected String prefix = PREFIX_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getSuffix() Suffix}' attribute.
+ *
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected static final String SUFFIX_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getSuffix() Suffix}' attribute.
+ *
+ * @see #getSuffix()
+ * @generated
+ * @ordered
+ */
+ protected String suffix = SUFFIX_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected TaskTagImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.TASK_TAG;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getPrefix() {
+ return this.prefix;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setPrefix(String newPrefix) {
+ String oldPrefix = this.prefix;
+ this.prefix = newPrefix;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.TASK_TAG__PREFIX, oldPrefix, this.prefix));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getSuffix() {
+ return this.suffix;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setSuffix(String newSuffix) {
+ String oldSuffix = this.suffix;
+ this.suffix = newSuffix;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.TASK_TAG__SUFFIX, oldSuffix, this.suffix));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK_TAG__PREFIX:
+ return this.getPrefix();
+ case ProjectmgmtPackage.TASK_TAG__SUFFIX:
+ return this.getSuffix();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK_TAG__PREFIX:
+ this.setPrefix((String) newValue);
+ return;
+ case ProjectmgmtPackage.TASK_TAG__SUFFIX:
+ this.setSuffix((String) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK_TAG__PREFIX:
+ this.setPrefix(PREFIX_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.TASK_TAG__SUFFIX:
+ this.setSuffix(SUFFIX_EDEFAULT);
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TASK_TAG__PREFIX:
+ return PREFIX_EDEFAULT == null ? this.prefix != null : !PREFIX_EDEFAULT.equals(this.prefix);
+ case ProjectmgmtPackage.TASK_TAG__SUFFIX:
+ return SUFFIX_EDEFAULT == null ? this.suffix != null : !SUFFIX_EDEFAULT.equals(this.suffix);
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (prefix: ");
+ result.append(this.prefix);
+ result.append(", suffix: ");
+ result.append(this.suffix);
+ result.append(')');
+ return result.toString();
+ }
+
+} // TaskTagImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TeamImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TeamImpl.java
new file mode 100644
index 0000000..92f9db9
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/TeamImpl.java
@@ -0,0 +1,145 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Team;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+
+/**
+ * An implementation of the model object 'Team'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.TeamImpl#getMembers Members}
+ *
+ *
+ * @generated
+ */
+public class TeamImpl extends ResourceImpl implements Team {
+ /**
+ * The cached value of the '{@link #getMembers() Members}' reference list.
+ *
+ * @see #getMembers()
+ * @generated
+ * @ordered
+ */
+ protected EList members;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected TeamImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.TEAM;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getMembers() {
+ if (this.members == null) {
+ this.members = new EObjectResolvingEList<>(Person.class, this, ProjectmgmtPackage.TEAM__MEMBERS);
+ }
+ return this.members;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TEAM__MEMBERS:
+ return this.getMembers();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TEAM__MEMBERS:
+ this.getMembers().clear();
+ this.getMembers().addAll((Collection extends Person>) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TEAM__MEMBERS:
+ this.getMembers().clear();
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.TEAM__MEMBERS:
+ return this.members != null && !this.members.isEmpty();
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+} // TeamImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/WorkpackageArtefactImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/WorkpackageArtefactImpl.java
new file mode 100644
index 0000000..ad663bd
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/WorkpackageArtefactImpl.java
@@ -0,0 +1,695 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefact;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefactNature;
+
+import java.time.LocalDate;
+import java.util.Objects;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+/**
+ * An implementation of the model object 'Workpackage Artefact'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getName Name}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getDescription Description}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getNature Nature}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getPlannedDeadline Planned Deadline}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getEffectiveDeadLine Effective Dead
+ * Line}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getIsInvoiceTrigger Is Invoice
+ * Trigger}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getInvoiceAmount Invoice Amount}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getResponsible Responsible}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getVersion Version}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageArtefactImpl#getIsObsolete Is Obsolete}
+ *
+ *
+ * @generated
+ */
+public class WorkpackageArtefactImpl extends MinimalEObjectImpl.Container implements WorkpackageArtefact {
+ /**
+ * The default value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() Description}' attribute.
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() Description}' attribute.
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getNature() Nature}' attribute.
+ *
+ * @see #getNature()
+ * @generated NOT
+ * @ordered
+ */
+ protected static final WorkpackageArtefactNature NATURE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getNature() Nature}' attribute.
+ *
+ * @see #getNature()
+ * @generated
+ * @ordered
+ */
+ protected WorkpackageArtefactNature nature = NATURE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getPlannedDeadline() Planned Deadline}' attribute.
+ *
+ * @see #getPlannedDeadline()
+ * @generated
+ * @ordered
+ */
+ protected static final LocalDate PLANNED_DEADLINE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getPlannedDeadline() Planned Deadline}' attribute.
+ *
+ * @see #getPlannedDeadline()
+ * @generated
+ * @ordered
+ */
+ protected LocalDate plannedDeadline = PLANNED_DEADLINE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEffectiveDeadLine() Effective Dead Line}' attribute.
+ *
+ * @see #getEffectiveDeadLine()
+ * @generated
+ * @ordered
+ */
+ protected static final LocalDate EFFECTIVE_DEAD_LINE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEffectiveDeadLine() Effective Dead Line}' attribute.
+ *
+ * @see #getEffectiveDeadLine()
+ * @generated
+ * @ordered
+ */
+ protected LocalDate effectiveDeadLine = EFFECTIVE_DEAD_LINE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIsInvoiceTrigger() Is Invoice Trigger}' attribute.
+ *
+ * @see #getIsInvoiceTrigger()
+ * @generated
+ * @ordered
+ */
+ protected static final Boolean IS_INVOICE_TRIGGER_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIsInvoiceTrigger() Is Invoice Trigger}' attribute.
+ *
+ * @see #getIsInvoiceTrigger()
+ * @generated
+ * @ordered
+ */
+ protected Boolean isInvoiceTrigger = IS_INVOICE_TRIGGER_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getInvoiceAmount() Invoice Amount}' attribute.
+ *
+ *
+ * @see #getInvoiceAmount()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer INVOICE_AMOUNT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getInvoiceAmount() Invoice Amount}' attribute.
+ *
+ *
+ * @see #getInvoiceAmount()
+ * @generated
+ * @ordered
+ */
+ protected Integer invoiceAmount = INVOICE_AMOUNT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getResponsible() Responsible}' reference.
+ *
+ * @see #getResponsible()
+ * @generated
+ * @ordered
+ */
+ protected Person responsible;
+
+ /**
+ * The default value of the '{@link #getVersion() Version}' attribute.
+ *
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected static final String VERSION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getVersion() Version}' attribute.
+ *
+ * @see #getVersion()
+ * @generated
+ * @ordered
+ */
+ protected String version = VERSION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getIsObsolete() Is Obsolete}' attribute.
+ *
+ * @see #getIsObsolete()
+ * @generated
+ * @ordered
+ */
+ protected static final Boolean IS_OBSOLETE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getIsObsolete() Is Obsolete}' attribute.
+ *
+ * @see #getIsObsolete()
+ * @generated
+ * @ordered
+ */
+ protected Boolean isObsolete = IS_OBSOLETE_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected WorkpackageArtefactImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.WORKPACKAGE_ARTEFACT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = this.name;
+ this.name = newName;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NAME, oldName, this.name));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getDescription() {
+ return this.description;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setDescription(String newDescription) {
+ String oldDescription = this.description;
+ this.description = newDescription;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__DESCRIPTION, oldDescription, this.description));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public WorkpackageArtefactNature getNature() {
+ return this.nature;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setNature(WorkpackageArtefactNature newNature) {
+ WorkpackageArtefactNature oldNature = this.nature;
+ this.nature = newNature == null ? NATURE_EDEFAULT : newNature;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NATURE, oldNature, this.nature));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getPlannedDeadline() {
+ return this.plannedDeadline;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setPlannedDeadline(LocalDate newPlannedDeadline) {
+ LocalDate oldPlannedDeadline = this.plannedDeadline;
+ this.plannedDeadline = newPlannedDeadline;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__PLANNED_DEADLINE, oldPlannedDeadline, this.plannedDeadline));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getEffectiveDeadLine() {
+ return this.effectiveDeadLine;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setEffectiveDeadLine(LocalDate newEffectiveDeadLine) {
+ LocalDate oldEffectiveDeadLine = this.effectiveDeadLine;
+ this.effectiveDeadLine = newEffectiveDeadLine;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__EFFECTIVE_DEAD_LINE, oldEffectiveDeadLine, this.effectiveDeadLine));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Boolean getIsInvoiceTrigger() {
+ return this.isInvoiceTrigger;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setIsInvoiceTrigger(Boolean newIsInvoiceTrigger) {
+ Boolean oldIsInvoiceTrigger = this.isInvoiceTrigger;
+ this.isInvoiceTrigger = newIsInvoiceTrigger;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_INVOICE_TRIGGER, oldIsInvoiceTrigger, this.isInvoiceTrigger));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Integer getInvoiceAmount() {
+ return this.invoiceAmount;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setInvoiceAmount(Integer newInvoiceAmount) {
+ Integer oldInvoiceAmount = this.invoiceAmount;
+ this.invoiceAmount = newInvoiceAmount;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__INVOICE_AMOUNT, oldInvoiceAmount, this.invoiceAmount));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Person getResponsible() {
+ if (this.responsible != null && this.responsible.eIsProxy()) {
+ InternalEObject oldResponsible = (InternalEObject) this.responsible;
+ this.responsible = (Person) this.eResolveProxy(oldResponsible);
+ if (this.responsible != oldResponsible) {
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__RESPONSIBLE, oldResponsible, this.responsible));
+ }
+ }
+ return this.responsible;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Person basicGetResponsible() {
+ return this.responsible;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setResponsible(Person newResponsible) {
+ Person oldResponsible = this.responsible;
+ this.responsible = newResponsible;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__RESPONSIBLE, oldResponsible, this.responsible));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getVersion() {
+ return this.version;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setVersion(String newVersion) {
+ String oldVersion = this.version;
+ this.version = newVersion;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__VERSION, oldVersion, this.version));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Boolean getIsObsolete() {
+ return this.isObsolete;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setIsObsolete(Boolean newIsObsolete) {
+ Boolean oldIsObsolete = this.isObsolete;
+ this.isObsolete = newIsObsolete;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_OBSOLETE, oldIsObsolete, this.isObsolete));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NAME:
+ return this.getName();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__DESCRIPTION:
+ return this.getDescription();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NATURE:
+ return this.getNature();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__PLANNED_DEADLINE:
+ return this.getPlannedDeadline();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__EFFECTIVE_DEAD_LINE:
+ return this.getEffectiveDeadLine();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_INVOICE_TRIGGER:
+ return this.getIsInvoiceTrigger();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__INVOICE_AMOUNT:
+ return this.getInvoiceAmount();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__RESPONSIBLE:
+ if (resolve)
+ return this.getResponsible();
+ return this.basicGetResponsible();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__VERSION:
+ return this.getVersion();
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_OBSOLETE:
+ return this.getIsObsolete();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NAME:
+ this.setName((String) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__DESCRIPTION:
+ this.setDescription((String) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NATURE:
+ this.setNature((WorkpackageArtefactNature) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__PLANNED_DEADLINE:
+ this.setPlannedDeadline((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__EFFECTIVE_DEAD_LINE:
+ this.setEffectiveDeadLine((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_INVOICE_TRIGGER:
+ this.setIsInvoiceTrigger((Boolean) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__INVOICE_AMOUNT:
+ this.setInvoiceAmount((Integer) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__RESPONSIBLE:
+ this.setResponsible((Person) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__VERSION:
+ this.setVersion((String) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_OBSOLETE:
+ this.setIsObsolete((Boolean) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NAME:
+ this.setName(NAME_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__DESCRIPTION:
+ this.setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NATURE:
+ this.setNature(NATURE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__PLANNED_DEADLINE:
+ this.setPlannedDeadline(PLANNED_DEADLINE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__EFFECTIVE_DEAD_LINE:
+ this.setEffectiveDeadLine(EFFECTIVE_DEAD_LINE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_INVOICE_TRIGGER:
+ this.setIsInvoiceTrigger(IS_INVOICE_TRIGGER_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__INVOICE_AMOUNT:
+ this.setInvoiceAmount(INVOICE_AMOUNT_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__RESPONSIBLE:
+ this.setResponsible(null);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__VERSION:
+ this.setVersion(VERSION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_OBSOLETE:
+ this.setIsObsolete(IS_OBSOLETE_EDEFAULT);
+ return;
+ default:
+ super.eUnset(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NAME:
+ return !Objects.equals(NAME_EDEFAULT, this.name);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__DESCRIPTION:
+ return !Objects.equals(DESCRIPTION_EDEFAULT, this.description);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__NATURE:
+ return this.nature != NATURE_EDEFAULT;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__PLANNED_DEADLINE:
+ return !Objects.equals(PLANNED_DEADLINE_EDEFAULT, this.plannedDeadline);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__EFFECTIVE_DEAD_LINE:
+ return !Objects.equals(EFFECTIVE_DEAD_LINE_EDEFAULT, this.effectiveDeadLine);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_INVOICE_TRIGGER:
+ return !Objects.equals(IS_INVOICE_TRIGGER_EDEFAULT, this.isInvoiceTrigger);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__INVOICE_AMOUNT:
+ return !Objects.equals(INVOICE_AMOUNT_EDEFAULT, this.invoiceAmount);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__RESPONSIBLE:
+ return this.responsible != null;
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__VERSION:
+ return !Objects.equals(VERSION_EDEFAULT, this.version);
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT__IS_OBSOLETE:
+ return !Objects.equals(IS_OBSOLETE_EDEFAULT, this.isObsolete);
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ String result = super.toString() + " (name: "
+ + this.name
+ + ", description: "
+ + this.description
+ + ", nature: "
+ + this.nature
+ + ", plannedDeadline: "
+ + this.plannedDeadline
+ + ", effectiveDeadLine: "
+ + this.effectiveDeadLine
+ + ", isInvoiceTrigger: "
+ + this.isInvoiceTrigger
+ + ", invoiceAmount: "
+ + this.invoiceAmount
+ + ", version: "
+ + this.version
+ + ", isObsolete: "
+ + this.isObsolete
+ + ')';
+ return result;
+ }
+
+} // WorkpackageArtefactImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/WorkpackageImpl.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/WorkpackageImpl.java
new file mode 100644
index 0000000..ae3afc7
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/impl/WorkpackageImpl.java
@@ -0,0 +1,694 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.impl;
+
+import fr.cea.deeplab.projectmgmt.Objective;
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Task;
+import fr.cea.deeplab.projectmgmt.Workpackage;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefact;
+
+import java.time.LocalDate;
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.EObjectResolvingEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+/**
+ * An implementation of the model object 'Workpackage'.
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getName Name}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getDescription Description}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getStartDate Start Date}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getEndDate End Date}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getLeader Leader}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getParticipants Participants}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getEffort Effort}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getOutputs Outputs}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getOwnedTasks Owned Tasks}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getOwnedObjectives Owned Objectives}
+ * - {@link fr.cea.deeplab.projectmgmt.impl.WorkpackageImpl#getProgress Progress}
+ *
+ *
+ * @generated
+ */
+public class WorkpackageImpl extends MinimalEObjectImpl.Container implements Workpackage {
+ /**
+ * The default value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() Name}' attribute.
+ *
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getDescription() Description}' attribute.
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected static final String DESCRIPTION_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getDescription() Description}' attribute.
+ *
+ * @see #getDescription()
+ * @generated
+ * @ordered
+ */
+ protected String description = DESCRIPTION_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getStartDate() Start Date}' attribute.
+ *
+ * @see #getStartDate()
+ * @generated
+ * @ordered
+ */
+ protected static final LocalDate START_DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStartDate() Start Date}' attribute.
+ *
+ * @see #getStartDate()
+ * @generated
+ * @ordered
+ */
+ protected LocalDate startDate = START_DATE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #getEndDate() End Date}' attribute.
+ *
+ * @see #getEndDate()
+ * @generated
+ * @ordered
+ */
+ protected static final LocalDate END_DATE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEndDate() End Date}' attribute.
+ *
+ * @see #getEndDate()
+ * @generated
+ * @ordered
+ */
+ protected LocalDate endDate = END_DATE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getLeader() Leader}' reference.
+ *
+ * @see #getLeader()
+ * @generated
+ * @ordered
+ */
+ protected Person leader;
+
+ /**
+ * The cached value of the '{@link #getParticipants() Participants}' reference list.
+ *
+ * @see #getParticipants()
+ * @generated
+ * @ordered
+ */
+ protected EList participants;
+
+ /**
+ * The default value of the '{@link #getEffort() Effort}' attribute.
+ *
+ * @see #getEffort()
+ * @generated
+ * @ordered
+ */
+ protected static final Integer EFFORT_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getEffort() Effort}' attribute.
+ *
+ * @see #getEffort()
+ * @generated
+ * @ordered
+ */
+ protected Integer effort = EFFORT_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOutputs() Outputs}' containment reference list.
+ *
+ * @see #getOutputs()
+ * @generated
+ * @ordered
+ */
+ protected EList outputs;
+
+ /**
+ * The cached value of the '{@link #getOwnedTasks() Owned Tasks}' containment reference list.
+ *
+ * @see #getOwnedTasks()
+ * @generated
+ * @ordered
+ */
+ protected EList ownedTasks;
+
+ /**
+ * The cached value of the '{@link #getOwnedObjectives() Owned Objectives}' containment reference list.
+ *
+ *
+ * @see #getOwnedObjectives()
+ * @generated
+ * @ordered
+ */
+ protected EList ownedObjectives;
+
+ /**
+ * The default value of the '{@link #getProgress() Progress}' attribute.
+ *
+ * @see #getProgress()
+ * @generated
+ * @ordered
+ */
+ protected static final int PROGRESS_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getProgress() Progress}' attribute.
+ *
+ * @see #getProgress()
+ * @generated
+ * @ordered
+ */
+ protected int progress = PROGRESS_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected WorkpackageImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProjectmgmtPackage.Literals.WORKPACKAGE;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = this.name;
+ this.name = newName;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__NAME, oldName, this.name));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String getDescription() {
+ return this.description;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setDescription(String newDescription) {
+ String oldDescription = this.description;
+ this.description = newDescription;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__DESCRIPTION, oldDescription, this.description));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getStartDate() {
+ return this.startDate;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setStartDate(LocalDate newStartDate) {
+ LocalDate oldStartDate = this.startDate;
+ this.startDate = newStartDate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__START_DATE, oldStartDate, this.startDate));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public LocalDate getEndDate() {
+ return this.endDate;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setEndDate(LocalDate newEndDate) {
+ LocalDate oldEndDate = this.endDate;
+ this.endDate = newEndDate;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__END_DATE, oldEndDate, this.endDate));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Person getLeader() {
+ if (this.leader != null && this.leader.eIsProxy()) {
+ InternalEObject oldLeader = (InternalEObject) this.leader;
+ this.leader = (Person) this.eResolveProxy(oldLeader);
+ if (this.leader != oldLeader) {
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProjectmgmtPackage.WORKPACKAGE__LEADER, oldLeader, this.leader));
+ }
+ }
+ return this.leader;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Person basicGetLeader() {
+ return this.leader;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setLeader(Person newLeader) {
+ Person oldLeader = this.leader;
+ this.leader = newLeader;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__LEADER, oldLeader, this.leader));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getParticipants() {
+ if (this.participants == null) {
+ this.participants = new EObjectResolvingEList<>(Person.class, this, ProjectmgmtPackage.WORKPACKAGE__PARTICIPANTS);
+ }
+ return this.participants;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Integer getEffort() {
+ return this.effort;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setEffort(Integer newEffort) {
+ Integer oldEffort = this.effort;
+ this.effort = newEffort;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__EFFORT, oldEffort, this.effort));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getOutputs() {
+ if (this.outputs == null) {
+ this.outputs = new EObjectContainmentEList<>(WorkpackageArtefact.class, this, ProjectmgmtPackage.WORKPACKAGE__OUTPUTS);
+ }
+ return this.outputs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getOwnedTasks() {
+ if (this.ownedTasks == null) {
+ this.ownedTasks = new EObjectContainmentEList<>(Task.class, this, ProjectmgmtPackage.WORKPACKAGE__OWNED_TASKS);
+ }
+ return this.ownedTasks;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public EList getOwnedObjectives() {
+ if (this.ownedObjectives == null) {
+ this.ownedObjectives = new EObjectContainmentEList<>(Objective.class, this, ProjectmgmtPackage.WORKPACKAGE__OWNED_OBJECTIVES);
+ }
+ return this.ownedObjectives;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public int getProgress() {
+ return this.progress;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void setProgress(int newProgress) {
+ int oldProgress = this.progress;
+ this.progress = newProgress;
+ if (this.eNotificationRequired())
+ this.eNotify(new ENotificationImpl(this, Notification.SET, ProjectmgmtPackage.WORKPACKAGE__PROGRESS, oldProgress, this.progress));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE__OUTPUTS:
+ return ((InternalEList>) this.getOutputs()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_TASKS:
+ return ((InternalEList>) this.getOwnedTasks()).basicRemove(otherEnd, msgs);
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_OBJECTIVES:
+ return ((InternalEList>) this.getOwnedObjectives()).basicRemove(otherEnd, msgs);
+ default:
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE__NAME:
+ return this.getName();
+ case ProjectmgmtPackage.WORKPACKAGE__DESCRIPTION:
+ return this.getDescription();
+ case ProjectmgmtPackage.WORKPACKAGE__START_DATE:
+ return this.getStartDate();
+ case ProjectmgmtPackage.WORKPACKAGE__END_DATE:
+ return this.getEndDate();
+ case ProjectmgmtPackage.WORKPACKAGE__LEADER:
+ if (resolve)
+ return this.getLeader();
+ return this.basicGetLeader();
+ case ProjectmgmtPackage.WORKPACKAGE__PARTICIPANTS:
+ return this.getParticipants();
+ case ProjectmgmtPackage.WORKPACKAGE__EFFORT:
+ return this.getEffort();
+ case ProjectmgmtPackage.WORKPACKAGE__OUTPUTS:
+ return this.getOutputs();
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_TASKS:
+ return this.getOwnedTasks();
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_OBJECTIVES:
+ return this.getOwnedObjectives();
+ case ProjectmgmtPackage.WORKPACKAGE__PROGRESS:
+ return this.getProgress();
+ default:
+ return super.eGet(featureID, resolve, coreType);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE__NAME:
+ this.setName((String) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__DESCRIPTION:
+ this.setDescription((String) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__START_DATE:
+ this.setStartDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__END_DATE:
+ this.setEndDate((LocalDate) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__LEADER:
+ this.setLeader((Person) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__PARTICIPANTS:
+ this.getParticipants().clear();
+ this.getParticipants().addAll((Collection extends Person>) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__EFFORT:
+ this.setEffort((Integer) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__OUTPUTS:
+ this.getOutputs().clear();
+ this.getOutputs().addAll((Collection extends WorkpackageArtefact>) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_TASKS:
+ this.getOwnedTasks().clear();
+ this.getOwnedTasks().addAll((Collection extends Task>) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_OBJECTIVES:
+ this.getOwnedObjectives().clear();
+ this.getOwnedObjectives().addAll((Collection extends Objective>) newValue);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__PROGRESS:
+ this.setProgress((Integer) newValue);
+ return;
+ default:
+ super.eSet(featureID, newValue);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE__NAME:
+ this.setName(NAME_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__DESCRIPTION:
+ this.setDescription(DESCRIPTION_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__START_DATE:
+ this.setStartDate(START_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__END_DATE:
+ this.setEndDate(END_DATE_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__LEADER:
+ this.setLeader((Person) null);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__PARTICIPANTS:
+ this.getParticipants().clear();
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__EFFORT:
+ this.setEffort(EFFORT_EDEFAULT);
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__OUTPUTS:
+ this.getOutputs().clear();
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_TASKS:
+ this.getOwnedTasks().clear();
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_OBJECTIVES:
+ this.getOwnedObjectives().clear();
+ return;
+ case ProjectmgmtPackage.WORKPACKAGE__PROGRESS:
+ this.setProgress(PROGRESS_EDEFAULT);
+ return;
+ default:
+ super.eUnset(featureID);
+ return;
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProjectmgmtPackage.WORKPACKAGE__NAME:
+ return NAME_EDEFAULT == null ? this.name != null : !NAME_EDEFAULT.equals(this.name);
+ case ProjectmgmtPackage.WORKPACKAGE__DESCRIPTION:
+ return DESCRIPTION_EDEFAULT == null ? this.description != null : !DESCRIPTION_EDEFAULT.equals(this.description);
+ case ProjectmgmtPackage.WORKPACKAGE__START_DATE:
+ return START_DATE_EDEFAULT == null ? this.startDate != null : !START_DATE_EDEFAULT.equals(this.startDate);
+ case ProjectmgmtPackage.WORKPACKAGE__END_DATE:
+ return END_DATE_EDEFAULT == null ? this.endDate != null : !END_DATE_EDEFAULT.equals(this.endDate);
+ case ProjectmgmtPackage.WORKPACKAGE__LEADER:
+ return this.leader != null;
+ case ProjectmgmtPackage.WORKPACKAGE__PARTICIPANTS:
+ return this.participants != null && !this.participants.isEmpty();
+ case ProjectmgmtPackage.WORKPACKAGE__EFFORT:
+ return EFFORT_EDEFAULT == null ? this.effort != null : !EFFORT_EDEFAULT.equals(this.effort);
+ case ProjectmgmtPackage.WORKPACKAGE__OUTPUTS:
+ return this.outputs != null && !this.outputs.isEmpty();
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_TASKS:
+ return this.ownedTasks != null && !this.ownedTasks.isEmpty();
+ case ProjectmgmtPackage.WORKPACKAGE__OWNED_OBJECTIVES:
+ return this.ownedObjectives != null && !this.ownedObjectives.isEmpty();
+ case ProjectmgmtPackage.WORKPACKAGE__PROGRESS:
+ return this.progress != PROGRESS_EDEFAULT;
+ default:
+ return super.eIsSet(featureID);
+ }
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (this.eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (name: ");
+ result.append(this.name);
+ result.append(", description: ");
+ result.append(this.description);
+ result.append(", startDate: ");
+ result.append(this.startDate);
+ result.append(", endDate: ");
+ result.append(this.endDate);
+ result.append(", effort: ");
+ result.append(this.effort);
+ result.append(", progress: ");
+ result.append(this.progress);
+ result.append(')');
+ return result.toString();
+ }
+
+} // WorkpackageImpl
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/util/ProjectmgmtAdapterFactory.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/util/ProjectmgmtAdapterFactory.java
new file mode 100644
index 0000000..8733f96
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/util/ProjectmgmtAdapterFactory.java
@@ -0,0 +1,429 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.util;
+
+import fr.cea.deeplab.projectmgmt.AbstractTask;
+import fr.cea.deeplab.projectmgmt.ExternalStakeholder;
+import fr.cea.deeplab.projectmgmt.InternalStakeholder;
+import fr.cea.deeplab.projectmgmt.KeyResult;
+import fr.cea.deeplab.projectmgmt.Objective;
+import fr.cea.deeplab.projectmgmt.Organization;
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.Project;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Resource;
+import fr.cea.deeplab.projectmgmt.ResourceFolder;
+import fr.cea.deeplab.projectmgmt.Risk;
+import fr.cea.deeplab.projectmgmt.TagFolder;
+import fr.cea.deeplab.projectmgmt.Task;
+import fr.cea.deeplab.projectmgmt.TaskTag;
+import fr.cea.deeplab.projectmgmt.Team;
+import fr.cea.deeplab.projectmgmt.Workpackage;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefact;
+
+import org.eclipse.emf.common.notify.Adapter;
+import org.eclipse.emf.common.notify.Notifier;
+import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ * The Adapter Factory for the model. It provides an adapter createXXX
+ * method for each class of the model.
+ *
+ * @see fr.cea.deeplab.projectmgmt.ProjectmgmtPackage
+ * @generated
+ */
+public class ProjectmgmtAdapterFactory extends AdapterFactoryImpl {
+ /**
+ * The cached model package.
+ *
+ * @generated
+ */
+ protected static ProjectmgmtPackage modelPackage;
+
+ /**
+ * Creates an instance of the adapter factory.
+ *
+ * @generated
+ */
+ public ProjectmgmtAdapterFactory() {
+ if (modelPackage == null) {
+ modelPackage = ProjectmgmtPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Returns whether this factory is applicable for the type of the object. This
+ * implementation returns true
if the object is either the model's package or is an instance object of
+ * the model.
+ *
+ * @return whether this factory is applicable for the type of the object.
+ * @generated
+ */
+ @Override
+ public boolean isFactoryForType(Object object) {
+ if (object == modelPackage) {
+ return true;
+ }
+ if (object instanceof EObject) {
+ return ((EObject) object).eClass().getEPackage() == modelPackage;
+ }
+ return false;
+ }
+
+ /**
+ * The switch that delegates to the createXXX
methods.
+ *
+ * @generated
+ */
+ protected ProjectmgmtSwitch modelSwitch = new ProjectmgmtSwitch<>() {
+ @Override
+ public Adapter caseOrganization(Organization object) {
+ return ProjectmgmtAdapterFactory.this.createOrganizationAdapter();
+ }
+
+ @Override
+ public Adapter caseResource(Resource object) {
+ return ProjectmgmtAdapterFactory.this.createResourceAdapter();
+ }
+
+ @Override
+ public Adapter caseResourceFolder(ResourceFolder object) {
+ return ProjectmgmtAdapterFactory.this.createResourceFolderAdapter();
+ }
+
+ @Override
+ public Adapter caseTeam(Team object) {
+ return ProjectmgmtAdapterFactory.this.createTeamAdapter();
+ }
+
+ @Override
+ public Adapter caseInternalStakeholder(InternalStakeholder object) {
+ return ProjectmgmtAdapterFactory.this.createInternalStakeholderAdapter();
+ }
+
+ @Override
+ public Adapter caseExternalStakeholder(ExternalStakeholder object) {
+ return ProjectmgmtAdapterFactory.this.createExternalStakeholderAdapter();
+ }
+
+ @Override
+ public Adapter casePerson(Person object) {
+ return ProjectmgmtAdapterFactory.this.createPersonAdapter();
+ }
+
+ @Override
+ public Adapter caseAbstractTask(AbstractTask object) {
+ return ProjectmgmtAdapterFactory.this.createAbstractTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseTagFolder(TagFolder object) {
+ return ProjectmgmtAdapterFactory.this.createTagFolderAdapter();
+ }
+
+ @Override
+ public Adapter caseTaskTag(TaskTag object) {
+ return ProjectmgmtAdapterFactory.this.createTaskTagAdapter();
+ }
+
+ @Override
+ public Adapter caseTask(Task object) {
+ return ProjectmgmtAdapterFactory.this.createTaskAdapter();
+ }
+
+ @Override
+ public Adapter caseObjective(Objective object) {
+ return ProjectmgmtAdapterFactory.this.createObjectiveAdapter();
+ }
+
+ @Override
+ public Adapter caseKeyResult(KeyResult object) {
+ return ProjectmgmtAdapterFactory.this.createKeyResultAdapter();
+ }
+
+ @Override
+ public Adapter caseProject(Project object) {
+ return ProjectmgmtAdapterFactory.this.createProjectAdapter();
+ }
+
+ @Override
+ public Adapter caseWorkpackage(Workpackage object) {
+ return ProjectmgmtAdapterFactory.this.createWorkpackageAdapter();
+ }
+
+ @Override
+ public Adapter caseWorkpackageArtefact(WorkpackageArtefact object) {
+ return ProjectmgmtAdapterFactory.this.createWorkpackageArtefactAdapter();
+ }
+
+ @Override
+ public Adapter caseRisk(Risk object) {
+ return ProjectmgmtAdapterFactory.this.createRiskAdapter();
+ }
+
+ @Override
+ public Adapter defaultCase(EObject object) {
+ return ProjectmgmtAdapterFactory.this.createEObjectAdapter();
+ }
+ };
+
+ /**
+ * Creates an adapter for the target
.
+ *
+ * @param target
+ * the object to adapt.
+ * @return the adapter for the target
.
+ * @generated
+ */
+ @Override
+ public Adapter createAdapter(Notifier target) {
+ return this.modelSwitch.doSwitch((EObject) target);
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Organization
+ * Organization}'. This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Organization
+ * @generated
+ */
+ public Adapter createOrganizationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Resource Resource}'.
+ * This default implementation returns null so that we can easily ignore cases; it's useful
+ * to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Resource
+ * @generated
+ */
+ public Adapter createResourceAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.ResourceFolder Resource
+ * Folder}'. This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.ResourceFolder
+ * @generated
+ */
+ public Adapter createResourceFolderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Team Team}'. This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Team
+ * @generated
+ */
+ public Adapter createTeamAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.InternalStakeholder Internal
+ * Stakeholder}'. This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.InternalStakeholder
+ * @generated
+ */
+ public Adapter createInternalStakeholderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.ExternalStakeholder External
+ * Stakeholder}'. This default implementation returns null so that we can easily ignore
+ * cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.ExternalStakeholder
+ * @generated
+ */
+ public Adapter createExternalStakeholderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Person Person}'. This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Person
+ * @generated
+ */
+ public Adapter createPersonAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.AbstractTask Abstract
+ * Task}'. This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.AbstractTask
+ * @generated
+ */
+ public Adapter createAbstractTaskAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.TagFolder Tag Folder}'.
+ * This default implementation returns null so that we can easily ignore cases; it's useful
+ * to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.TagFolder
+ * @generated
+ */
+ public Adapter createTagFolderAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.TaskTag Task Tag}'. This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.TaskTag
+ * @generated
+ */
+ public Adapter createTaskTagAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Task Task}'. This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Task
+ * @generated
+ */
+ public Adapter createTaskAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Objective Objective}'.
+ * This default implementation returns null so that we can easily ignore cases; it's useful
+ * to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Objective
+ * @generated
+ */
+ public Adapter createObjectiveAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.KeyResult Key Result}'.
+ * This default implementation returns null so that we can easily ignore cases; it's useful
+ * to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.KeyResult
+ * @generated
+ */
+ public Adapter createKeyResultAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Project Project}'. This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Project
+ * @generated
+ */
+ public Adapter createProjectAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Workpackage
+ * Workpackage}'. This default implementation returns null so that we can easily
+ * ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Workpackage
+ * @generated
+ */
+ public Adapter createWorkpackageAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.WorkpackageArtefact
+ * Workpackage Artefact}'. This default implementation returns null so that we can
+ * easily ignore cases; it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.WorkpackageArtefact
+ * @generated
+ */
+ public Adapter createWorkpackageArtefactAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link fr.cea.deeplab.projectmgmt.Risk Risk}'. This default implementation returns null so that we can easily ignore cases; it's useful to
+ * ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see fr.cea.deeplab.projectmgmt.Risk
+ * @generated
+ */
+ public Adapter createRiskAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for the default case. This default implementation returns null.
+ *
+ *
+ * @return the new adapter.
+ * @generated
+ */
+ public Adapter createEObjectAdapter() {
+ return null;
+ }
+
+} // ProjectmgmtAdapterFactory
diff --git a/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/util/ProjectmgmtSwitch.java b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/util/ProjectmgmtSwitch.java
new file mode 100644
index 0000000..49d9a0e
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/java/fr/cea/deeplab/projectmgmt/util/ProjectmgmtSwitch.java
@@ -0,0 +1,485 @@
+/**
+ * Copyright (c) 2024 CEA LIST.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ */
+package fr.cea.deeplab.projectmgmt.util;
+
+import fr.cea.deeplab.projectmgmt.AbstractTask;
+import fr.cea.deeplab.projectmgmt.ExternalStakeholder;
+import fr.cea.deeplab.projectmgmt.InternalStakeholder;
+import fr.cea.deeplab.projectmgmt.KeyResult;
+import fr.cea.deeplab.projectmgmt.Objective;
+import fr.cea.deeplab.projectmgmt.Organization;
+import fr.cea.deeplab.projectmgmt.Person;
+import fr.cea.deeplab.projectmgmt.Project;
+import fr.cea.deeplab.projectmgmt.ProjectmgmtPackage;
+import fr.cea.deeplab.projectmgmt.Resource;
+import fr.cea.deeplab.projectmgmt.ResourceFolder;
+import fr.cea.deeplab.projectmgmt.Risk;
+import fr.cea.deeplab.projectmgmt.TagFolder;
+import fr.cea.deeplab.projectmgmt.Task;
+import fr.cea.deeplab.projectmgmt.TaskTag;
+import fr.cea.deeplab.projectmgmt.Team;
+import fr.cea.deeplab.projectmgmt.Workpackage;
+import fr.cea.deeplab.projectmgmt.WorkpackageArtefact;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+import org.eclipse.emf.ecore.util.Switch;
+
+/**
+ * The Switch for the model's inheritance hierarchy. It supports the call
+ * {@link #doSwitch(EObject) doSwitch(object)} to invoke the caseXXX
method for each class of the model,
+ * starting with the actual class of the object and proceeding up the inheritance hierarchy until a non-null result is
+ * returned, which is the result of the switch.
+ *
+ * @see fr.cea.deeplab.projectmgmt.ProjectmgmtPackage
+ * @generated
+ */
+public class ProjectmgmtSwitch extends Switch {
+ /**
+ * The cached model package
+ *
+ * @generated
+ */
+ protected static ProjectmgmtPackage modelPackage;
+
+ /**
+ * Creates an instance of the switch.
+ *
+ * @generated
+ */
+ public ProjectmgmtSwitch() {
+ if (modelPackage == null) {
+ modelPackage = ProjectmgmtPackage.eINSTANCE;
+ }
+ }
+
+ /**
+ * Checks whether this is a switch for the given package.
+ *
+ * @param ePackage
+ * the package in question.
+ * @return whether this is a switch for the given package.
+ * @generated
+ */
+ @Override
+ protected boolean isSwitchFor(EPackage ePackage) {
+ return ePackage == modelPackage;
+ }
+
+ /**
+ * Calls caseXXX
for each class of the model until one returns a non null result; it yields that
+ * result.
+ *
+ * @return the first non-null result returned by a caseXXX
call.
+ * @generated
+ */
+ @Override
+ protected T doSwitch(int classifierID, EObject theEObject) {
+ switch (classifierID) {
+ case ProjectmgmtPackage.ORGANIZATION: {
+ Organization organization = (Organization) theEObject;
+ T result = this.caseOrganization(organization);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.RESOURCE: {
+ Resource resource = (Resource) theEObject;
+ T result = this.caseResource(resource);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.RESOURCE_FOLDER: {
+ ResourceFolder resourceFolder = (ResourceFolder) theEObject;
+ T result = this.caseResourceFolder(resourceFolder);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.TEAM: {
+ Team team = (Team) theEObject;
+ T result = this.caseTeam(team);
+ if (result == null)
+ result = this.caseResource(team);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.INTERNAL_STAKEHOLDER: {
+ InternalStakeholder internalStakeholder = (InternalStakeholder) theEObject;
+ T result = this.caseInternalStakeholder(internalStakeholder);
+ if (result == null)
+ result = this.caseResource(internalStakeholder);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.EXTERNAL_STAKEHOLDER: {
+ ExternalStakeholder externalStakeholder = (ExternalStakeholder) theEObject;
+ T result = this.caseExternalStakeholder(externalStakeholder);
+ if (result == null)
+ result = this.caseResource(externalStakeholder);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.PERSON: {
+ Person person = (Person) theEObject;
+ T result = this.casePerson(person);
+ if (result == null)
+ result = this.caseResource(person);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.ABSTRACT_TASK: {
+ AbstractTask abstractTask = (AbstractTask) theEObject;
+ T result = this.caseAbstractTask(abstractTask);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.TAG_FOLDER: {
+ TagFolder tagFolder = (TagFolder) theEObject;
+ T result = this.caseTagFolder(tagFolder);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.TASK_TAG: {
+ TaskTag taskTag = (TaskTag) theEObject;
+ T result = this.caseTaskTag(taskTag);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.TASK: {
+ Task task = (Task) theEObject;
+ T result = this.caseTask(task);
+ if (result == null)
+ result = this.caseAbstractTask(task);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.OBJECTIVE: {
+ Objective objective = (Objective) theEObject;
+ T result = this.caseObjective(objective);
+ if (result == null)
+ result = this.caseAbstractTask(objective);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.KEY_RESULT: {
+ KeyResult keyResult = (KeyResult) theEObject;
+ T result = this.caseKeyResult(keyResult);
+ if (result == null)
+ result = this.caseAbstractTask(keyResult);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.PROJECT: {
+ Project project = (Project) theEObject;
+ T result = this.caseProject(project);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.WORKPACKAGE: {
+ Workpackage workpackage = (Workpackage) theEObject;
+ T result = this.caseWorkpackage(workpackage);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.WORKPACKAGE_ARTEFACT: {
+ WorkpackageArtefact workpackageArtefact = (WorkpackageArtefact) theEObject;
+ T result = this.caseWorkpackageArtefact(workpackageArtefact);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ case ProjectmgmtPackage.RISK: {
+ Risk risk = (Risk) theEObject;
+ T result = this.caseRisk(risk);
+ if (result == null)
+ result = this.defaultCase(theEObject);
+ return result;
+ }
+ default:
+ return this.defaultCase(theEObject);
+ }
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Organization'.
+ * This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Organization'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseOrganization(Organization object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Resource'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Resource'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResource(Resource object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Resource Folder'. This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Resource Folder'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseResourceFolder(ResourceFolder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Team'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Team'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTeam(Team object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Internal Stakeholder'. This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Internal Stakeholder'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseInternalStakeholder(InternalStakeholder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'External Stakeholder'. This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'External Stakeholder'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseExternalStakeholder(ExternalStakeholder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Person'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Person'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T casePerson(Person object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Abstract Task'.
+ * This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Abstract Task'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAbstractTask(AbstractTask object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Tag Folder'.
+ * This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Tag Folder'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTagFolder(TagFolder object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Task Tag'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Task Tag'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTaskTag(TaskTag object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Task'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Task'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTask(Task object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Objective'.
+ * This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Objective'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseObjective(Objective object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Key Result'.
+ * This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Key Result'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseKeyResult(KeyResult object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Project'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Project'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseProject(Project object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Workpackage'.
+ * This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Workpackage'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWorkpackage(Workpackage object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Workpackage Artefact'. This implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Workpackage Artefact'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseWorkpackageArtefact(WorkpackageArtefact object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Risk'. This
+ * implementation returns null; returning a non-null result will terminate the switch.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Risk'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRisk(Risk object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'EObject'. This
+ * implementation returns null; returning a non-null result will terminate the switch, but this is the last case
+ * anyway.
+ *
+ * @param object
+ * the target of the switch.
+ * @return the result of interpreting the object as an instance of 'EObject'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject)
+ * @generated
+ */
+ @Override
+ public T defaultCase(EObject object) {
+ return null;
+ }
+
+} // ProjectmgmtSwitch
diff --git a/backend/deeplab-projectmanagement/src/main/resources/icons/svg/Default.svg b/backend/deeplab-projectmanagement/src/main/resources/icons/svg/Default.svg
new file mode 100644
index 0000000..39d97af
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/resources/icons/svg/Default.svg
@@ -0,0 +1,71 @@
+
+
diff --git a/backend/deeplab-projectmanagement/src/main/resources/model/projectmgmt.ecore b/backend/deeplab-projectmanagement/src/main/resources/model/projectmgmt.ecore
new file mode 100644
index 0000000..55d562b
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/resources/model/projectmgmt.ecore
@@ -0,0 +1,191 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/deeplab-projectmanagement/src/main/resources/model/projectmgmt.genmodel b/backend/deeplab-projectmanagement/src/main/resources/model/projectmgmt.genmodel
new file mode 100644
index 0000000..7703033
--- /dev/null
+++ b/backend/deeplab-projectmanagement/src/main/resources/model/projectmgmt.genmodel
@@ -0,0 +1,173 @@
+
+
+ projectmgmt.ecore
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/deeplab-web/.checkstyle b/backend/deeplab-web/.checkstyle
new file mode 100644
index 0000000..f62c550
--- /dev/null
+++ b/backend/deeplab-web/.checkstyle
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/deeplab-web/.classpath b/backend/deeplab-web/.classpath
new file mode 100644
index 0000000..2a5a91b
--- /dev/null
+++ b/backend/deeplab-web/.classpath
@@ -0,0 +1,57 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/deeplab-web/.project b/backend/deeplab-web/.project
new file mode 100644
index 0000000..8af2df6
--- /dev/null
+++ b/backend/deeplab-web/.project
@@ -0,0 +1,34 @@
+
+
+ deeplab-web
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.springframework.ide.eclipse.boot.validation.springbootbuilder
+
+
+
+
+ net.sf.eclipsecs.core.CheckstyleBuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+ net.sf.eclipsecs.core.CheckstyleNature
+
+
diff --git a/backend/deeplab-web/.settings/org.eclipse.core.resources.prefs b/backend/deeplab-web/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..29abf99
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,6 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
+encoding/=UTF-8
diff --git a/backend/deeplab-web/.settings/org.eclipse.core.runtime.prefs b/backend/deeplab-web/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..a287fef
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,3 @@
+#Mon Sep 24 15:04:19 CEST 2007
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/backend/deeplab-web/.settings/org.eclipse.jdt.apt.core.prefs b/backend/deeplab-web/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..d4313d4
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false
diff --git a/backend/deeplab-web/.settings/org.eclipse.jdt.core.prefs b/backend/deeplab-web/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..2ab93cd
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,505 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.annotationPath.allLocations=disabled
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=17
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=17
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotatedTypeArgumentToUnannotated=info
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.suppressWarningsNotFullyAnalysed=info
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=ignore
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=info
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unstableAutoModuleName=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=17
+org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
+org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns=false
+org.eclipse.jdt.core.formatter.align_with_spaces=false
+org.eclipse.jdt.core.formatter.alignment_for_additive_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_enum_constant=0
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_field=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_local_variable=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_method=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_package=49
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_parameter=0
+org.eclipse.jdt.core.formatter.alignment_for_annotations_on_type=49
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assertion_message=0
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_bitwise_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_loops=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression_chain=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header=0
+org.eclipse.jdt.core.formatter.alignment_for_logical_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_module_statements=16
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_multiplicative_operator=16
+org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_record_components=16
+org.eclipse.jdt.core.formatter.alignment_for_relational_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_shift_operator=0
+org.eclipse.jdt.core.formatter.alignment_for_string_concatenation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_record_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_type_annotations=0
+org.eclipse.jdt.core.formatter.alignment_for_type_arguments=0
+org.eclipse.jdt.core.formatter.alignment_for_type_parameters=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_last_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_abstract_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=1
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_statement_group_in_switch=0
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_record_constructor=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_record_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.align_tags_descriptions_grouped=false
+org.eclipse.jdt.core.formatter.comment.align_tags_names_descriptions=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.count_line_length_from_starting_position=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.indent_tag_description=false
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_between_different_tags=do not insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_record_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_record_components=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_switch_case_expressions=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_not_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_additive_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_case=insert
+org.eclipse.jdt.core.formatter.insert_space_before_arrow_in_switch_default=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_bitwise_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_record_components=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_switch_case_expressions=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_logical_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_multiplicative_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_constructor=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_record_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_record_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_relational_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_shift_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_string_concatenation=insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+org.eclipse.jdt.core.formatter.keep_annotation_declaration_on_one_line=one_line_if_empty
+org.eclipse.jdt.core.formatter.keep_anonymous_type_declaration_on_one_line=one_line_if_empty
+org.eclipse.jdt.core.formatter.keep_code_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_enum_constant_declaration_on_one_line=one_line_if_empty
+org.eclipse.jdt.core.formatter.keep_enum_declaration_on_one_line=one_line_if_empty
+org.eclipse.jdt.core.formatter.keep_if_then_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_lambda_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_loop_body_block_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_method_body_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_record_constructor_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_record_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.keep_simple_do_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_for_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_simple_getter_setter_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_simple_while_body_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_type_declaration_on_one_line=one_line_never
+org.eclipse.jdt.core.formatter.lineSplit=200
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_after_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_code_block=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_end_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_blank_lines_before_code_block=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_record_declaration=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement=common_lines
+org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause=common_lines
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.text_block_indentation=0
+org.eclipse.jdt.core.formatter.use_on_off_tags=true
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_additive_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_assertion_message_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_assignment_operator=false
+org.eclipse.jdt.core.formatter.wrap_before_bitwise_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_conditional_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_logical_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_multiplicative_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_before_relational_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_shift_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_string_concatenation=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
+org.eclipse.jdt.core.javaFormatter=org.eclipse.jdt.core.defaultJavaFormatter
diff --git a/backend/deeplab-web/.settings/org.eclipse.jdt.ui.prefs b/backend/deeplab-web/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..f789e68
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,210 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=true
+cleanup.always_use_this_for_non_static_method_access=true
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=true
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_modifiers=false
+cleanup.remove_redundant_semicolons=false
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=true
+cleanup.use_this_for_non_static_field_access_only_if_necessary=false
+cleanup.use_this_for_non_static_method_access=true
+cleanup.use_this_for_non_static_method_access_only_if_necessary=false
+cleanup_profile=_Sirius
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Sirius
+formatter_settings_version=21
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com;fr;java;javax;org;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=/*******************************************************************************\n * Copyright (c) ${year} Obeo.\n * This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v2.0\n * which accompanies this distribution, and is available at\n * https\://www.eclipse.org/legal/epl-2.0/\n *\n * SPDX-License-Identifier\: EPL-2.0\n *\n * Contributors\:\n * Obeo - initial API and implementation\n *******************************************************************************//**\n * @author ${user}\n *//**\n * \n *//**\n * ${tags}\n *//**\n * ${tags}\n * ${see_to_target}\n */${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}\n\n\n\n${exception_var}.printStackTrace();${body_statement}${body_statement}return ${field};${field} \= ${param};/**\n * @author ${user}\n *\n * ${tags}\n */\n
+sp_cleanup.add_all=false
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=true
+sp_cleanup.always_use_this_for_non_static_method_access=true
+sp_cleanup.array_with_curly=false
+sp_cleanup.arrays_fill=false
+sp_cleanup.bitwise_conditional_expression=false
+sp_cleanup.boolean_literal=false
+sp_cleanup.boolean_value_rather_than_comparison=false
+sp_cleanup.break_loop=false
+sp_cleanup.collection_cloning=false
+sp_cleanup.comparing_on_criteria=false
+sp_cleanup.comparison_statement=false
+sp_cleanup.controlflow_merge=false
+sp_cleanup.convert_functional_interfaces=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.convert_to_enhanced_for_loop_if_loop_var_used=false
+sp_cleanup.convert_to_switch_expressions=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.do_while_rather_than_while=false
+sp_cleanup.double_negation=false
+sp_cleanup.else_if=false
+sp_cleanup.embedded_if=false
+sp_cleanup.evaluate_nullable=false
+sp_cleanup.extract_increment=false
+sp_cleanup.format_source_code=false
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.hash=false
+sp_cleanup.if_condition=false
+sp_cleanup.insert_inferred_type_arguments=false
+sp_cleanup.instanceof=false
+sp_cleanup.instanceof_keyword=false
+sp_cleanup.invert_equals=false
+sp_cleanup.join=false
+sp_cleanup.lazy_logical_operator=false
+sp_cleanup.make_local_variable_final=true
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.map_cloning=false
+sp_cleanup.merge_conditional_blocks=false
+sp_cleanup.multi_catch=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.no_string_creation=false
+sp_cleanup.no_super=false
+sp_cleanup.number_suffix=false
+sp_cleanup.objects_equals=false
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.one_if_rather_than_duplicate_blocks_that_fall_through=false
+sp_cleanup.operand_factorization=false
+sp_cleanup.organize_imports=true
+sp_cleanup.overridden_assignment=false
+sp_cleanup.overridden_assignment_move_decl=false
+sp_cleanup.plain_replacement=false
+sp_cleanup.precompile_regex=false
+sp_cleanup.primitive_comparison=false
+sp_cleanup.primitive_parsing=false
+sp_cleanup.primitive_rather_than_wrapper=false
+sp_cleanup.primitive_serialization=false
+sp_cleanup.pull_out_if_from_if_else=false
+sp_cleanup.pull_up_assignment=false
+sp_cleanup.push_down_negation=false
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.reduce_indentation=false
+sp_cleanup.redundant_comparator=false
+sp_cleanup.redundant_falling_through_block_end=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_redundant_modifiers=false
+sp_cleanup.remove_redundant_semicolons=false
+sp_cleanup.remove_redundant_type_arguments=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_array_creation=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_method_parameters=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.return_expression=false
+sp_cleanup.simplify_lambda_expression_and_method_ref=false
+sp_cleanup.single_used_field=false
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.standard_comparison=false
+sp_cleanup.static_inner_class=false
+sp_cleanup.strictly_equal_or_different=false
+sp_cleanup.stringbuffer_to_stringbuilder=false
+sp_cleanup.stringbuilder=false
+sp_cleanup.stringbuilder_for_local_vars=false
+sp_cleanup.stringconcat_to_textblock=false
+sp_cleanup.substring=false
+sp_cleanup.switch=false
+sp_cleanup.system_property=false
+sp_cleanup.system_property_boolean=false
+sp_cleanup.system_property_file_encoding=false
+sp_cleanup.system_property_file_separator=false
+sp_cleanup.system_property_line_separator=false
+sp_cleanup.system_property_path_separator=false
+sp_cleanup.ternary_operator=false
+sp_cleanup.try_with_resource=false
+sp_cleanup.unlooped_while=false
+sp_cleanup.unreachable_block=false
+sp_cleanup.use_anonymous_class_creation=false
+sp_cleanup.use_autoboxing=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_directly_map_method=false
+sp_cleanup.use_lambda=true
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_string_is_blank=false
+sp_cleanup.use_this_for_non_static_field_access=true
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=false
+sp_cleanup.use_this_for_non_static_method_access=true
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=false
+sp_cleanup.use_unboxing=false
+sp_cleanup.use_var=false
+sp_cleanup.useless_continue=false
+sp_cleanup.useless_return=false
+sp_cleanup.valueof_rather_than_instantiation=false
diff --git a/backend/deeplab-web/.settings/org.eclipse.m2e.core.prefs b/backend/deeplab-web/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..96b30f9
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=pom.xml
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/backend/deeplab-web/.settings/org.springframework.ide.eclipse.boot.prefs b/backend/deeplab-web/.settings/org.springframework.ide.eclipse.boot.prefs
new file mode 100644
index 0000000..b5811b1
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.springframework.ide.eclipse.boot.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+spring.boot.launch.profile.history=dev;
diff --git a/backend/deeplab-web/.settings/org.springframework.ide.eclipse.prefs b/backend/deeplab-web/.settings/org.springframework.ide.eclipse.prefs
new file mode 100644
index 0000000..a12794d
--- /dev/null
+++ b/backend/deeplab-web/.settings/org.springframework.ide.eclipse.prefs
@@ -0,0 +1,2 @@
+boot.validation.initialized=true
+eclipse.preferences.version=1
diff --git a/backend/deeplab-web/pom.xml b/backend/deeplab-web/pom.xml
new file mode 100644
index 0000000..3da3979
--- /dev/null
+++ b/backend/deeplab-web/pom.xml
@@ -0,0 +1,223 @@
+
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.3.1
+
+
+ deeplab-projectmanagement
+ deeplab-web
+ 2024.11.0
+ deeplab-web
+ Deeplab Web
+
+
+ 17
+
+
+
+
+ github
+ Apache Maven Packages
+ https://maven.pkg.github.com/TODO/deeplab-web
+
+
+
+
+
+ github-sirius-web
+ Apache Maven Packages
+ https://maven.pkg.github.com/eclipse-sirius/sirius-web
+
+
+
+
+
+ org.eclipse.sirius
+ sirius-web-starter
+ 2024.11.0
+
+
+ org.eclipse.sirius
+ sirius-web-frontend
+ 2024.11.0
+
+
+
+
+ deeplab-projectmanagement
+ deeplab-projectmanagement-starter
+ 2024.11.0
+
+
+ org.eclipse.sirius
+ sirius-web-papaya
+ 2024.11.0
+
+
+ org.eclipse.sirius
+ sirius-components-flow-starter
+ 2024.11.0
+
+
+ org.eclipse.sirius
+ sirius-components-task-starter
+ 2024.11.0
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.tngtech.archunit
+ archunit-junit5
+ 1.3.0
+ test
+
+
+ io.projectreactor
+ reactor-test
+ test
+
+
+ org.testcontainers
+ postgresql
+ test
+
+
+ org.testcontainers
+ junit-jupiter
+ test
+
+
+ org.eclipse.sirius
+ sirius-web-tests
+ 2024.11.0
+ test
+
+
+ org.eclipse.sirius
+ sirius-components-diagrams-tests
+ 2024.11.0
+ test
+
+
+ org.eclipse.sirius
+ sirius-components-forms-tests
+ 2024.11.0
+ test
+
+
+ org.eclipse.sirius
+ sirius-components-gantt-tests
+ 2024.11.0
+ test
+
+
+ org.eclipse.sirius
+ sirius-components-trees-tests
+ 2024.11.0
+ test
+
+
+ org.eclipse.sirius
+ sirius-components-portals-tests
+ 2024.11.0
+ test
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ build-info
+
+
+
+
+
+ org.cyclonedx
+ cyclonedx-maven-plugin
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ 3.4.0
+
+ ./../releng/deeplab-resources/checkstyle/CheckstyleConfiguration.xml
+ true
+ true
+ true
+
+
+
+ validate
+ validate
+
+ check
+
+
+
+
+
+ org.jacoco
+ jacoco-maven-plugin
+ 0.8.12
+
+
+
+ prepare-agent
+
+
+
+ report
+ prepare-package
+
+ report
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+
+
+ attach-sources
+
+ jar
+
+
+
+
+
+
+
diff --git a/backend/deeplab-web/src/main/java/org/eclipse/sirius/web/DeeplabWeb.java b/backend/deeplab-web/src/main/java/org/eclipse/sirius/web/DeeplabWeb.java
new file mode 100644
index 0000000..1cb4f7e
--- /dev/null
+++ b/backend/deeplab-web/src/main/java/org/eclipse/sirius/web/DeeplabWeb.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2024 Obeo.
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * Obeo - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.sirius.web;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+/**
+ * Entry point of the Deeplab Web server.
+ *
+ * @author lfasani
+ */
+@SpringBootApplication
+public class DeeplabWeb {
+ /**
+ * The entry point of the server.
+ *
+ * @param args
+ * The command line arguments
+ */
+ public static void main(String[] args) {
+ SpringApplication.run(DeeplabWeb.class, args);
+ }
+}
diff --git a/backend/deeplab-web/src/main/resources/application.properties b/backend/deeplab-web/src/main/resources/application.properties
new file mode 100644
index 0000000..7ef4791
--- /dev/null
+++ b/backend/deeplab-web/src/main/resources/application.properties
@@ -0,0 +1,29 @@
+################################################################################
+# Copyright (c) 2024 CEA LIST.
+# This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v2.0
+# which accompanies this distribution, and is available at
+# https://www.eclipse.org/legal/epl-2.0/
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Obeo - initial API and implementation
+#################################################################################
+
+server.port=8080
+spring.datasource.url=jdbc:postgresql://localhost:5438/sirius-web-db
+spring.datasource.username=dbuser
+spring.datasource.password=dbpwd
+
+spring.mvc.pathmatch.matching-strategy=ant_path_matcher
+
+spring.jpa.hibernate.ddl-auto=none
+spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
+spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
+
+spring.liquibase.change-log=classpath:db/db.changelog-master.xml
+
+sirius.web.enabled=*
+sirius.components.cors.allowedOriginPatterns=*
+sirius.components.cors.allowedCredentials=true
diff --git a/backend/pom.xml b/backend/pom.xml
new file mode 100644
index 0000000..a99d855
--- /dev/null
+++ b/backend/pom.xml
@@ -0,0 +1,56 @@
+
+
+
+ 4.0.0
+
+ deeplab-projectmanagement
+ deeplab-projectmanagement-parent
+ 2024.11.0
+
+ Pepper
+ Pepper for project management
+ pom
+
+
+
+
+ deeplab-projectmanagement
+ deeplab-projectmanagement-edit
+ deeplab-projectmanagement-starter
+ deeplab-web
+
+
+
+
+
+
+
+ org.codehaus.mojo
+ versions-maven-plugin
+
+ true
+
+
+
+
+
+
+
+
diff --git a/backend/releng/deeplab-resources/.project b/backend/releng/deeplab-resources/.project
new file mode 100644
index 0000000..da4a03e
--- /dev/null
+++ b/backend/releng/deeplab-resources/.project
@@ -0,0 +1,11 @@
+
+
+ deeplab-resources
+
+
+
+
+
+
+
+
diff --git a/backend/releng/deeplab-resources/README.adoc b/backend/releng/deeplab-resources/README.adoc
new file mode 100644
index 0000000..b1a9127
--- /dev/null
+++ b/backend/releng/deeplab-resources/README.adoc
@@ -0,0 +1,10 @@
+= deeplab-resources
+
+== Goal
+
+This project is used to store some common settings used by our Java projects.
+As such, it contains our Checkstyle configuration, our formatter settings etc.
+
+== Dependencies
+
+None, this is not a Java project
diff --git a/backend/releng/deeplab-resources/checkstyle/CheckstyleConfiguration.xml b/backend/releng/deeplab-resources/checkstyle/CheckstyleConfiguration.xml
new file mode 100644
index 0000000..fecae4b
--- /dev/null
+++ b/backend/releng/deeplab-resources/checkstyle/CheckstyleConfiguration.xml
@@ -0,0 +1,356 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/releng/deeplab-resources/editor/CleanupProfile.xml b/backend/releng/deeplab-resources/editor/CleanupProfile.xml
new file mode 100644
index 0000000..b16f9b4
--- /dev/null
+++ b/backend/releng/deeplab-resources/editor/CleanupProfile.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/releng/deeplab-resources/editor/JavaFormatter.xml b/backend/releng/deeplab-resources/editor/JavaFormatter.xml
new file mode 100644
index 0000000..a42eedd
--- /dev/null
+++ b/backend/releng/deeplab-resources/editor/JavaFormatter.xml
@@ -0,0 +1,777 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/backend/releng/deeplab-resources/editor/codetemplates.xml b/backend/releng/deeplab-resources/editor/codetemplates.xml
new file mode 100644
index 0000000..46a4a7b
--- /dev/null
+++ b/backend/releng/deeplab-resources/editor/codetemplates.xml
@@ -0,0 +1 @@
+
diff --git a/backend/releng/deeplab-resources/editor/sirius.importorder b/backend/releng/deeplab-resources/editor/sirius.importorder
new file mode 100644
index 0000000..20328a8
--- /dev/null
+++ b/backend/releng/deeplab-resources/editor/sirius.importorder
@@ -0,0 +1,7 @@
+#Organize Import Order
+#Mon Mar 11 15:56:44 CET 2019
+0=com
+1=fr
+2=java
+3=javax
+4=org