Package org.apache.uima.dde.internal.provider

Source Code of org.apache.uima.dde.internal.provider.ErrorConfigContentProvider

/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*   http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied.  See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package org.apache.uima.dde.internal.provider;

import org.apache.uima.aae.deployment.AEDeploymentDescription;
import org.apache.uima.aae.deployment.AEDeploymentMetaData;
import org.apache.uima.aae.deployment.AsyncAEErrorConfiguration;
import org.apache.uima.aae.deployment.AsyncAggregateErrorConfiguration;
import org.apache.uima.aae.deployment.AsyncPrimitiveErrorConfiguration;
import org.apache.uima.aae.deployment.CollectionProcessCompleteErrors;
import org.apache.uima.aae.deployment.GetMetadataErrors;
import org.apache.uima.aae.deployment.ProcessCasErrors;
import org.apache.uima.aae.deployment.impl.DeploymentMetaData_Impl;
import org.eclipse.jface.viewers.IStructuredContentProvider;
import org.eclipse.jface.viewers.Viewer;


public class ErrorConfigContentProvider implements IStructuredContentProvider {
  private static final Object[] EMPTY_ARRAY = new Object[0];

  public Object[] getElements(Object inputElement) {
    Object[] objs = null;
    int count = 0;
    int status = 0;

    if (inputElement instanceof GetMetadataErrors) {
      GetMetadataErrors getMetadataErrors = (GetMetadataErrors) inputElement;
      DeploymentMetaData_Impl parentMetaData = getMetadataErrors.getParent().gParentObject();
     
      if ( (parentMetaData instanceof AEDeploymentMetaData)
              && !((AEDeploymentMetaData) parentMetaData).isAsync() ) {
        status = NameValuePair.STATUS_NON_EDITABLE;
      }
     
      objs = new Object[3];
      objs[0] = new NameValuePair(getMetadataErrors, GetMetadataErrors.KIND_TIMEOUT,
              GetMetadataErrors.NAME_TIMEOUT,
              getMetadataErrors.getTimeout(), Integer.class);
      objs[1] = new NameValuePair(getMetadataErrors, GetMetadataErrors.KIND_ERRORACTION,
              GetMetadataErrors.NAME_ERRORACTION,
              getMetadataErrors.getErrorAction(), String.class);
      objs[2] = new NameValuePair(getMetadataErrors, GetMetadataErrors.KIND_MAX_RETRIES,
              GetMetadataErrors.NAME_MAX_RETRIES,
              getMetadataErrors.getMaxRetries(), Integer.class);
      // ((NameValuePair) objs[0]).setStatusFlags(status);
      // ((NameValuePair) objs[1]).setStatusFlags(status);
      ((NameValuePair) objs[2]).setStatusFlags(status);
      return objs;

    } else if (inputElement instanceof ProcessCasErrors) {
      ProcessCasErrors processCasErrors = (ProcessCasErrors) inputElement;
      AsyncAEErrorConfiguration parent = processCasErrors.getParent();
      DeploymentMetaData_Impl parentMetaData = parent.gParentObject();
     
      if (parent instanceof AsyncAggregateErrorConfiguration) {
        count = 6;
      } else {
        count = 3;
      }
      objs = new Object[count];
     
      // Set names
      String nameThresholdCount;
      String nameThresholdWindow;
      String nameThresholdAction;
     
      if (count == 6) {
        // For AsyncAggregateErrorConfiguration
        objs[0] = new NameValuePair(processCasErrors, ProcessCasErrors.KIND_MAX_RETRIES,
                ProcessCasErrors.NAME_MAX_RETRIES,
                processCasErrors.getMaxRetries(), Integer.class);
        objs[1] = new NameValuePair(processCasErrors, ProcessCasErrors.KIND_TIMEOUT,
                ProcessCasErrors.NAME_TIMEOUT,
                processCasErrors.getTimeout(), Integer.class);
        objs[2] = new NameValuePair(processCasErrors, ProcessCasErrors.KIND_CONTINUE_ON_RETRY,
                ProcessCasErrors.NAME_CONTINUE_ON_RETRY,
                processCasErrors.isContinueOnRetryFailure(),
                Boolean.class);
        if ( (parentMetaData instanceof AEDeploymentMetaData)
                && !((AEDeploymentMetaData) parentMetaData).isAsync() ) {
          ((NameValuePair) objs[0]).setStatusFlags(NameValuePair.STATUS_NON_EDITABLE);
          ((NameValuePair) objs[2]).setStatusFlags(NameValuePair.STATUS_NON_EDITABLE);
         
        }

        nameThresholdCount = ProcessCasErrors.NAME_DELEGATE_THRESHOLD_COUNT;
        nameThresholdWindow = ProcessCasErrors.NAME_DELEGATE_THRESHOLD_WINDOW;
        nameThresholdAction = ProcessCasErrors.NAME_DELEGATE_THRESHOLD_ACTION;
      } else {
        // For AsyncPrimitiveErrorConfiguration
        nameThresholdCount = ProcessCasErrors.NAME_THRESHOLD_COUNT;
        nameThresholdWindow = ProcessCasErrors.NAME_THRESHOLD_WINDOW;
        nameThresholdAction = ProcessCasErrors.NAME_THRESHOLD_ACTION;
      }
      objs[count-3] = new NameValuePair(processCasErrors, ProcessCasErrors.KIND_THRESHOLD_COUNT,
              nameThresholdCount,
              processCasErrors.getThresholdCount(), Integer.class);
      objs[count-2] = new NameValuePair(processCasErrors, ProcessCasErrors.KIND_THRESHOLD_WINDOW,
              nameThresholdWindow,
              processCasErrors.getThresholdWindow(), Integer.class);
      objs[count-1] = new NameValuePair(processCasErrors, ProcessCasErrors.KIND_THRESHOLD_ACTION,
              nameThresholdAction,
              processCasErrors.getThresholdAction(), String.class);
     
      if (processCasErrors.getThresholdCount() == 0) {
        status = NameValuePair.STATUS_NON_EDITABLE;
        ((NameValuePair) objs[count-2]).setStatusFlags(NameValuePair.STATUS_NON_EDITABLE);
        ((NameValuePair) objs[count-1]).setStatusFlags(NameValuePair.STATUS_NON_EDITABLE);
      } else {
        // For Async Primitive Error
        if (processCasErrors.getParent() instanceof AsyncPrimitiveErrorConfiguration) {
          ((NameValuePair) objs[count-1]).setStatusFlags(NameValuePair.STATUS_NON_EDITABLE);
        }
      }
      return objs;

    } else if (inputElement instanceof CollectionProcessCompleteErrors) {
      CollectionProcessCompleteErrors completeErrors = (CollectionProcessCompleteErrors) inputElement;

      objs = new Object[2];
      objs[0] = new NameValuePair(completeErrors, CollectionProcessCompleteErrors.KIND_TIMEOUT,
              CollectionProcessCompleteErrors.NAME_TIMEOUT,
              completeErrors.getTimeout(), Integer.class);
      objs[1] = new NameValuePair(completeErrors,
              CollectionProcessCompleteErrors.KIND_ADDITIONA_ERROR_ACTION,
              CollectionProcessCompleteErrors.NAME_ADDITIONA_ERROR_ACTION,
              completeErrors.getAdditionalErrorAction(), String.class);
      if (completeErrors.getParent() instanceof AsyncPrimitiveErrorConfiguration) {
        ((NameValuePair) objs[1]).setStatusFlags(NameValuePair.STATUS_NON_EDITABLE);
      }
      return objs;

    }

    return EMPTY_ARRAY;
  }

  public void dispose() {
  }

  public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
  }

}
TOP

Related Classes of org.apache.uima.dde.internal.provider.ErrorConfigContentProvider

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.