@Override
 public void addParameter(String name, String value) {
   final IPortletDefinitionParameter existingParameter = this.parameters.get(name);
   if (existingParameter != null) {
     existingParameter.setValue(value);
   } else {
     this.parameters.put(name, new PortletDefinitionParameterImpl(name, value));
   }
 }
  @Override
  public void setParameters(Set<IPortletDefinitionParameter> newParameters) {

    if (newParameters == null) {
      this.parameters = new LinkedHashMap<String, IPortletDefinitionParameter>();
    } else if (this.parameters == null) {
      this.parameters = new LinkedHashMap<String, IPortletDefinitionParameter>();
      for (final IPortletDefinitionParameter parameter : newParameters) {
        this.parameters.put(parameter.getName(), parameter);
      }
    } else {
      // Build map of existing parameters for tracking which parameters have been removed
      final Map<String, IPortletDefinitionParameter> oldPreferences =
          new LinkedHashMap<String, IPortletDefinitionParameter>(this.parameters);

      for (final IPortletDefinitionParameter parameter : newParameters) {
        final String name = parameter.getName();

        // Remove the existing parameter from the map since it is supposed to be persisted
        final IPortletDefinitionParameter existingParameter = oldPreferences.remove(name);
        if (existingParameter == null) {
          // New parameter, add it to the list
          this.parameters.put(name, parameter);
        } else {
          // Existing parameter, update the fields
          existingParameter.setDescription(parameter.getDescription());
          existingParameter.setValue(parameter.getValue());
          this.parameters.put(name, existingParameter);
        }
      }

      // Remove old parameters
      this.parameters.keySet().removeAll(oldPreferences.keySet());
    }
  }
  @Override
  public String getTarget() {
    final IPortletDefinitionParameter targetParameter = getParameter(TARGET_PARAM);

    if (null != targetParameter) {
      final String target = targetParameter.getValue();

      if (StringUtils.hasText(target)) {
        return target;
      }
    }

    return null;
  }
  @Override
  public String getAlternativeMaximizedLink() {
    final IPortletDefinitionParameter alternativeMaximizedLinkParameter =
        getParameter(ALT_MAX_LINK_PARAM);

    if (null != alternativeMaximizedLinkParameter) {
      final String alternativeMaximizedLink = alternativeMaximizedLinkParameter.getValue();

      if (StringUtils.hasText(alternativeMaximizedLink)) {
        return alternativeMaximizedLink;
      }
    }

    return null;
  }
 @Override
 public void addParameter(IPortletDefinitionParameter parameter) {
   final String name = parameter.getName();
   final IPortletDefinitionParameter existingParameter = this.parameters.get(name);
   if (existingParameter != null) {
     existingParameter.setDescription(parameter.getDescription());
     existingParameter.setValue(parameter.getValue());
   } else {
     this.parameters.put(name, parameter);
   }
 }
 @Override
 public void removeParameter(IPortletDefinitionParameter parameter) {
   this.parameters.remove(parameter.getName());
 }