@Override
  public EmptyExpressionInfo resolve(
      TargetClassInfo usingClass,
      CallableUnitInfo usingMethod,
      ClassInfoManager classInfoManager,
      FieldInfoManager fieldInfoManager,
      MethodInfoManager methodInfoManager) {
    // 不正な呼び出しでないかをチェック
    MetricsToolSecurityManager.getInstance().checkAccess();
    if ((null == usingClass)
        || (null == usingMethod)
        || (null == classInfoManager)
        || (null == methodInfoManager)) {
      throw new NullPointerException();
    }

    // 既に解決済みである場合は,キャッシュを返す
    if (this.alreadyResolved()) {
      return this.getResolved();
    }

    this.resolvedInfo =
        new EmptyExpressionInfo(
            usingMethod,
            this.getFromLine(),
            this.getFromColumn(),
            this.getToLine(),
            this.getToColumn());
    return this.resolvedInfo;
  }
  @Override
  public TernaryOperationInfo resolve(
      TargetClassInfo usingClass,
      CallableUnitInfo usingMethod,
      ClassInfoManager classInfoManager,
      FieldInfoManager fieldInfoManager,
      MethodInfoManager methodInfoManager) {
    // 不正な呼び出しでないかをチェック
    MetricsToolSecurityManager.getInstance().checkAccess();
    if ((null == usingClass)
        || (null == usingMethod)
        || (null == classInfoManager)
        || (null == methodInfoManager)) {
      throw new NullPointerException();
    }

    // 既に解決済みである場合は,キャッシュを返す
    if (this.alreadyResolved()) {
      return this.getResolved();
    }

    final int fromLine = this.getFromLine();
    final int fromColumn = this.getFromColumn();
    final int toLine = this.getToLine();
    final int toColumn = this.getToColumn();

    final ConditionInfo conditionalExpression =
        this.condition.resolve(
            usingClass, usingMethod, classInfoManager, fieldInfoManager, methodInfoManager);
    final ExpressionInfo trueExpression =
        this.trueExpression.resolve(
            usingClass, usingMethod, classInfoManager, fieldInfoManager, methodInfoManager);
    final ExpressionInfo falseExpression =
        this.falseExpression.resolve(
            usingClass, usingMethod, classInfoManager, fieldInfoManager, methodInfoManager);

    /*// 要素使用のオーナー要素を返す
    final UnresolvedExecutableElementInfo<?> unresolvedOwnerExecutableElement = this
            .getOwnerExecutableElement();
    final ExecutableElementInfo ownerExecutableElement = unresolvedOwnerExecutableElement
            .resolve(usingClass, usingMethod, classInfoManager, fieldInfoManager,
                    methodInfoManager);*/

    this.resolvedInfo =
        new TernaryOperationInfo(
            conditionalExpression,
            trueExpression,
            falseExpression,
            usingMethod,
            fromLine,
            fromColumn,
            toLine,
            toColumn);
    /*this.resolvedInfo.setOwnerExecutableElement(ownerExecutableElement);*/
    return this.resolvedInfo;
  }