/** * Copyright (C) Yutaka Matsuno 2010-2012 All rights reserved. */ // AUTO_GENERATED:START package net.dependableos.dcase.impl; import java.util.ArrayList; import java.util.List; import net.dependableos.dcase.Context; import net.dependableos.dcase.DcasePackage; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.xmi.XMLResource; /** * <!-- begin-user-doc --> * An implementation of the model object '<em><b>Context</b></em>'. * <!-- end-user-doc --> * <p> * </p> * * @generated */ public class ContextImpl extends BasicNodeImpl implements Context { /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ protected ContextImpl() { super(); } /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ @Override protected EClass eStaticClass() { return DcasePackage.Literals.CONTEXT; } /** * {@inheritDoc} */ @Override public void setRequirement(String newReq) { super.setRequirement(newReq); } /** * {@inheritDoc} */ public List<RequirementItem> getRequirements(){ List<RequirementItem> requirementList = new ArrayList<RequirementItem>(); String id = ((XMLResource)eResource()).getID(this); String requirementsString = getRequirement(); String parameters = ""; //$NON-NLS-1$; try { parameters = getParameters(); } catch (Exception e) { } if (requirementsString != null && requirementsString.length() > 0) { for (String requirement : requirementsString.split(RequirementItem.REQUIREMENT_DELIMITER)) { String[] requirementStrings = requirement.split(RequirementItem.REQUIREMENT_ID_DELIMITER); if (requirementStrings.length < 2){ return null; } RequirementItem item = new RequirementItem(id,requirementStrings[0], requirementStrings[1], parameters); requirementList.add(item); } } return requirementList; } /** * {@inheritDoc} */ public void setRequirements(List<RequirementItem> requirements){ if(requirements == null){ return; } StringBuilder requirementsStringBuilder = new StringBuilder(); for(RequirementItem requirement:requirements){ requirementsStringBuilder.append(requirement.toString()); requirementsStringBuilder.append(RequirementItem.REQUIREMENT_DELIMITER); } setRequirement(requirementsStringBuilder.toString()); } /** * Sets formatted string to description. * * @param basicNode the node. * @param parameters the parameters. */ private void setContextDesc(Context basicNode , String parameters) { String paramDesc = basicNode.getParameterizedDesc(); // tests whether the formatter is valid. if (paramDesc != null && paramDesc.trim().length() != 0) { basicNode.setDesc(getFormattedDesc(basicNode, parameters, paramDesc)); } } /** * Returns the formatted string for description. * * @param basicNode the node. * @param parameters the parameters. * @param formatter the format string. * @return the formatted string for description. */ public static String getFormattedDesc(Context basicNode , String parameters, String formatter) { // tests whether the parameters are valid. String requirements = getRequirementString(basicNode); if (requirements != null && requirements.length() > 0) { formatter = formatter.replaceAll( String.format( ParameterItem.PARAM_ITEM_FORMAT, "Requirements"), requirements); //$NON-NLS-1$ } return ParameterItem.getFormattedDesc(parameters , formatter); } /** * Returns the string that represents requirements formatted with parameters. * * @param context the context. * @return the string that represents requirements. */ private static String getRequirementString(Context context) { List<RequirementItem> requirements = context.getRequirements(); StringBuilder requirementsStringBuilder = new StringBuilder(); for(RequirementItem requirement:requirements){ requirementsStringBuilder.append(requirement.getRequirement()); requirementsStringBuilder.append(System.getProperty("line.separator")); } return requirementsStringBuilder.toString(); } } //ContextImpl