code: public String getDescriptiveName()
      {
          StringBuilder sb = new StringBuilder(getDistributionName());
          sb.append("(");
          String[] vars = getVariables();
          double[] vals = getCurrentVariableValues();
          
          sb.append(vars[0]).append(" = ").append(vals[0]);
          
          for(int i  = 1; i < vars.length; i++)
              sb.append(", ").append(vars[i]).append(" = ").append(vals[i]);
          
          sb.append(")");
          
          return sb.toString();
      }
  
      /**
       * Return the name of the distribution. 
       * @return the name of the distribution. 
       */
      abstract public String getDistributionName();
  
      /**
       * Returns an array, where each value contains the name of a parameter in the distribution. 
       * The order must always be the same, and match up with the values returned by {@link #getCurrentVariableValues() }
       * 
       * @return a string of the variable names this distribution uses
       */
      abstract public String[] getVariables();
  
      /**
       * Returns an array, where each value contains the value of a parameter in the distribution. 
       * The order must always be the same, and match up with the values returned by {@link #getVariables() }
       * @return the current values of the parameters used by this distribution, in the same order as their names are returned by {@link #getVariables() }
       */
      abstract public double[] getCurrentVariableValues();
  
      /**
       * Sets one of the variables of this distribution by the name. 
       * @param var the variable to set
       * @param value  the value to set 
       */
      abstract public void setVariable(String var, double value);
      
      @Override
      abstract public ContinuousDistribution clone();
  
      /**
       * Attempts to set the variables used by this distribution based on population sample data, 
       * assuming the sample data is from this type of distribution.
       * 
       * @param data the data to use to attempt to fit against
       */
      abstract public void setUsingData(Vec data);
  
      @Override
      public String toString()
      {
          return getDistributionName();
      }
  
  }
docs: The descriptive name of a distribution returns the name of the distribution, followed by the parameters of the distribution and their values.
  @return the name of the distribution that includes parameter values