Package net.sf.jasperreports.engine

Source Code of net.sf.jasperreports.engine.JRHyperlinkHelper

/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2009 Jaspersoft Corporation. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JasperReports is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JasperReports. If not, see <http://www.gnu.org/licenses/>.
*/
package net.sf.jasperreports.engine;

import net.sf.jasperreports.engine.type.HyperlinkTargetEnum;
import net.sf.jasperreports.engine.type.HyperlinkTypeEnum;


/**
* Utility class that manages built-in hyperlink types.
*
* @author Lucian Chirita (lucianc@users.sourceforge.net)
* @version $Id: JRHyperlinkHelper.java 3712 2010-04-08 09:53:09Z teodord $
*/
public final class JRHyperlinkHelper
{
  /**
   * "None" link type, equivalent to {@link JRHyperlink#HYPERLINK_TYPE_NONE JRHyperlink.HYPERLINK_TYPE_NONE}.
   * @deprecated Replaced by {@link HyperlinkTypeEnum#NONE}.
   */
  public static final String HYPERLINK_TYPE_NONE = HyperlinkTypeEnum.NONE.getName();
 
  /**
   * "Reference" link type, equivalent to {@link JRHyperlink#HYPERLINK_TYPE_REFERENCE JRHyperlink.HYPERLINK_TYPE_REFERENCE}.
   * @deprecated Replaced by {@link HyperlinkTypeEnum#REFERENCE}.
   */
  public static final String HYPERLINK_TYPE_REFERENCE = HyperlinkTypeEnum.REFERENCE.getName();
 
  /**
   * "LocalAnchor" link type, equivalent to {@link JRHyperlink#HYPERLINK_TYPE_LOCAL_ANCHOR JRHyperlink.HYPERLINK_LOCAL_ANCHOR}.
   * @deprecated Replaced by {@link HyperlinkTypeEnum#LOCAL_ANCHOR}.
   */
  public static final String HYPERLINK_TYPE_LOCAL_ANCHOR = HyperlinkTypeEnum.LOCAL_ANCHOR.getName();
 
  /**
   * "LocalPage" link type, equivalent to {@link JRHyperlink#HYPERLINK_TYPE_LOCAL_PAGE JRHyperlink.HYPERLINK_TYPE_LOCAL_PAGE}.
   * @deprecated Replaced by {@link HyperlinkTypeEnum#LOCAL_PAGE}.
   */
  public static final String HYPERLINK_TYPE_LOCAL_PAGE = HyperlinkTypeEnum.LOCAL_PAGE.getName();
 
  /**
   * "RemoteAnchor" link type, equivalent to {@link JRHyperlink#HYPERLINK_TYPE_REMOTE_ANCHOR JRHyperlink.HYPERLINK_TYPE_REMOTE_ANCHOR}.
   * @deprecated Replaced by {@link HyperlinkTypeEnum#REMOTE_ANCHOR}.
   */
  public static final String HYPERLINK_TYPE_REMOTE_ANCHOR = HyperlinkTypeEnum.REMOTE_ANCHOR.getName();
 
  /**
   * "RemotePage" link type, equivalent to {@link JRHyperlink#HYPERLINK_TYPE_REMOTE_PAGE JRHyperlink.HYPERLINK_TYPE_REMOTE_PAGE}.
   * @deprecated Replaced by {@link HyperlinkTypeEnum#REMOTE_PAGE}.
   */
  public static final String HYPERLINK_TYPE_REMOTE_PAGE = HyperlinkTypeEnum.REMOTE_PAGE.getName();
 
  /**
   * "Self" link target name, equivalent to {@link JRHyperlink#HYPERLINK_TARGET_SELF JRHyperlink.HYPERLINK_TARGET_SELF}.
   * @deprecated Replaced by {@link HyperlinkTargetEnum#SELF}.
   */
  public static final String HYPERLINK_TARGET_SELF = HyperlinkTargetEnum.SELF.getName();

  /**
   * "Blank" link target name, equivalent to {@link JRHyperlink#HYPERLINK_TARGET_BLANK JRHyperlink.HYPERLINK_TARGET_BLANK}.
   * @deprecated Replaced by {@link HyperlinkTargetEnum#BLANK}.
   */
  public static final String HYPERLINK_TARGET_BLANK = HyperlinkTargetEnum.BLANK.getName();

  /**
   * "Parent" link target name, equivalent to {@link JRHyperlink#HYPERLINK_TARGET_PARENT JRHyperlink.HYPERLINK_TARGET_PARENT}.
   * @deprecated Replaced by {@link HyperlinkTargetEnum#PARENT}.
   */
  public static final String HYPERLINK_TARGET_PARENT = HyperlinkTargetEnum.PARENT.getName();

  /**
   * "Top" link target name, equivalent to {@link JRHyperlink#HYPERLINK_TARGET_TOP JRHyperlink.HYPERLINK_TARGET_TOP}.
   * @deprecated Replaced by {@link HyperlinkTargetEnum#TOP}.
   */
  public static final String HYPERLINK_TARGET_TOP = HyperlinkTargetEnum.TOP.getName();
 
 
  /**
   * @deprecated Replaced by {@link #getHyperlinkTypeValue(JRHyperlink)}.
   */
  public static byte getHyperlinkType(JRHyperlink hyperlink)
  {
    return getHyperlinkTypeValue(hyperlink.getLinkType()).getValue();
  }
 

  /**
   * Returns the built-in hyperlink type, or {@link JRHyperlink#HYPERLINK_TYPE_CUSTOM JRHyperlink.HYPERLINK_TYPE_CUSTOM}
   * if the type is not a built-in type.
   *
   * @param hyperlink the hyperlink object
   * @return the hyperlink type
   */
  public static HyperlinkTypeEnum getHyperlinkTypeValue(JRHyperlink hyperlink)
  {
    return getHyperlinkTypeValue(hyperlink.getLinkType());
  }
 

  /**
   * @deprecated Replaced by {@link #getHyperlinkTypeValue(String)}.
   */
  public static byte getHyperlinkType(String linkType)
  {
    return getHyperlinkTypeValue(linkType).getValue();
  }
 
 
  /**
   * Returns the built-in hyperlink type, or {@link JRHyperlink#HYPERLINK_TYPE_CUSTOM JRHyperlink.HYPERLINK_TYPE_CUSTOM}
   * if the type is not a built-in type.
   *
   * @param linkType the link type
   * @return the hyperlink type
   */
  public static HyperlinkTypeEnum getHyperlinkTypeValue(String linkType)
  {
    HyperlinkTypeEnum type;
    if (linkType == null)
    {
      type = HyperlinkTypeEnum.NONE;
    }
    else
    {
      HyperlinkTypeEnum builtinType = HyperlinkTypeEnum.getByName(linkType);
      if (builtinType == null)
      {
        type = HyperlinkTypeEnum.CUSTOM;
      }
      else
      {
        type = builtinType;
      }
    }
    return type;
  }
 

  /**
   * Returns the built-in hyperlink target, or {@link JRHyperlink#HYPERLINK_TARGET_CUSTOM JRHyperlink.HYPERLINK_TARGET_CUSTOM}
   * if the target name is not a built-in one.
   *
   * @param hyperlink the hyperlink object
   * @return the hyperlink target
   */
  public static byte getHyperlinkTarget(JRHyperlink hyperlink)
  {
    return getHyperlinkTarget(hyperlink.getLinkTarget());
  }
 

  /**
   * @deprecated Replaced by {@link #getHyperlinkTargetValue(String)}.
   */
  public static byte getHyperlinkTarget(String linkTarget)
  {
    return getHyperlinkTargetValue(linkTarget).getValue();
  }
 
 
  /**
   * Returns the built-in hyperlink target, or {@link HyperlinkTargetEnum#CUSTOM HyperlinkTargetEnum.CUSTOM}
   * if the target name is not a built-in one.
   *
   * @param linkTarget the link target type
   * @return the hyperlink target
   */
  public static HyperlinkTargetEnum getHyperlinkTargetValue(String linkTarget)
  {
    HyperlinkTargetEnum target;
    if (linkTarget == null)
    {
      target = HyperlinkTargetEnum.SELF;
    }
    else
    {
      HyperlinkTargetEnum builtinTarget = HyperlinkTargetEnum.getByName(linkTarget);
      if (builtinTarget == null)
      {
        target = HyperlinkTargetEnum.CUSTOM;
      }
      else
      {
        target = builtinTarget;
      }
    }
    return target;
  }
 
 
  /**
   * @deprecated Replaced by {@link #getLinkType(HyperlinkTypeEnum)}.
   */
  public static String getLinkType(byte hyperlinkType)
  {
    return getLinkType(HyperlinkTypeEnum.getByValue(hyperlinkType));
  }

 
  /**
   * Returns the link type associated with a built-in type.
   *
   * @param hyperlinkType the built-in type
   * @return the String link type
   */
  public static String getLinkType(HyperlinkTypeEnum hyperlinkType)
  {
    String type;
    switch (hyperlinkType)
    {
      case NULL:
      case NONE:
        type = null;
        break;
      case REFERENCE:
      case LOCAL_ANCHOR:
      case LOCAL_PAGE:
      case REMOTE_ANCHOR:
      case REMOTE_PAGE:
        type = hyperlinkType.getName();
        break;
      case CUSTOM:
        throw new JRRuntimeException("Custom hyperlink types cannot be specified using the byte constant");
      default:
        throw new JRRuntimeException("Unknown hyperlink type " + hyperlinkType);
    }
    return type;
  }

 
  /**
   * @deprecated Replaced by {@link #getLinkTarget(HyperlinkTargetEnum)}.
   */
  public static String getLinkTarget(byte hyperlinkTarget)
  {
    return getLinkTarget(HyperlinkTargetEnum.getByValue(hyperlinkTarget));
  }

 
  /**
   * Returns the link target associated with a built-in target.
   *
   * @param hyperlinkTarget the built-in target type
   * @return the String link target
   */
  public static String getLinkTarget(HyperlinkTargetEnum hyperlinkTarget)
  {
    String target;
    switch (hyperlinkTarget)
    {
      case NONE:
      case SELF:
        target = null;
        break;
      case BLANK:
        target = HYPERLINK_TARGET_BLANK;
        break;
      case PARENT:
        target = HYPERLINK_TARGET_PARENT;
        break;
      case TOP:
        target = HYPERLINK_TARGET_TOP;
        break;
      case CUSTOM:
        throw new JRRuntimeException("Custom hyperlink targets cannot be specified using the byte constant");
      default:
        throw new JRRuntimeException("Unknown hyperlink target " + hyperlinkTarget);
    }
    return target;
  }

 
  /**
   * Decides whether a hyperlink is empty or not.
   * <p>
   * The hyperlink is considered empty when it's <code>null</code> or when
   * its type is {@link HyperlinkTypeEnum#NONE NONE}
   * and it doesn't include a tooltip expression
   * </p>
   * @param hyperlink the hyperlink
   * @return whether the hyperlink is empty
   */
  public static boolean isEmpty(JRHyperlink hyperlink)
  {
    return hyperlink == null
      || (hyperlink.getHyperlinkTypeValue() == HyperlinkTypeEnum.NONE
        && hyperlink.getHyperlinkTooltipExpression() == null);
  }
 
 
  private JRHyperlinkHelper()
  {
  }
}
TOP

Related Classes of net.sf.jasperreports.engine.JRHyperlinkHelper

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.