Search in sources :

Example 1 with VariableTranslator

use of com.centurylink.mdw.common.translator.VariableTranslator in project mdw-designer by CenturyLinkCloud.

the class DesignerProxy method getVariableInfo.

/**
 * Must be called from the UI thread.
 */
public VariableTypeVO getVariableInfo(final VariableInstanceInfo varInstInfo) {
    String varType = varInstInfo.getType();
    VariableTranslator varTrans = getVariableTranslator(varType);
    final VariableTypeVO varTypeVO = new VariableTypeVO(0L, varType, varTrans == null ? null : varTrans.getClass().getName());
    if (varInstInfo.getStringValue() != null && varTypeVO.isJavaObjectType()) {
        BusyIndicator.showWhile(MdwPlugin.getShell().getDisplay(), new Runnable() {

            public void run() {
                DocumentReference docRef = new DocumentReference(varInstInfo.getStringValue());
                try {
                    Object obj = new JavaObjectTranslator().realToObject(getDocument(docRef).getContent());
                    varTypeVO.setVariableType(obj.getClass().getName());
                    varTypeVO.setUpdateable(obj instanceof SelfSerializable);
                } catch (TranslationException ex) {
                    if (MdwPlugin.getSettings().isLogConnectErrors())
                        PluginMessages.log(ex);
                    try {
                        if (!project.checkRequiredVersion(6, 1, 1)) {
                            String path = "DocumentValue?format=xml&id=" + docRef.getDocumentId() + "&type=" + varTypeVO.getVariableType();
                            String resp = getRestfulServer().invokeResourceService(path);
                            Resource res = Resource.Factory.parse(resp, Compatibility.namespaceOptions());
                            for (Parameter param : res.getParameterList()) {
                                if ("className".equals(param.getName()))
                                    varTypeVO.setVariableType(param.getStringValue());
                                else if ("isUpdateable".equals(param.getName()))
                                    varTypeVO.setUpdateable(Boolean.parseBoolean(param.getStringValue()));
                            }
                        }
                    } catch (Exception ex2) {
                        throw new RuntimeException(ex2.getMessage(), ex2);
                    }
                }
            }
        });
    }
    return varTypeVO;
}
Also used : JavaObjectTranslator(com.centurylink.mdw.common.translator.impl.JavaObjectTranslator) Resource(com.centurylink.mdw.service.Resource) VariableTranslator(com.centurylink.mdw.common.translator.VariableTranslator) TranslationException(com.centurylink.mdw.common.exception.TranslationException) JSONException(org.json.JSONException) TranslationException(com.centurylink.mdw.common.exception.TranslationException) AuthenticationException(com.centurylink.mdw.auth.AuthenticationException) IOException(java.io.IOException) XmlException(org.apache.xmlbeans.XmlException) ValidationException(com.centurylink.mdw.designer.utils.ValidationException) DataAccessOfflineException(com.centurylink.mdw.dataaccess.DataAccessOfflineException) ZipException(java.util.zip.ZipException) DataAccessException(com.centurylink.mdw.common.exception.DataAccessException) FileNotFoundException(java.io.FileNotFoundException) RemoteException(java.rmi.RemoteException) VariableTypeVO(com.centurylink.mdw.model.value.variable.VariableTypeVO) SelfSerializable(com.centurylink.mdw.common.translator.SelfSerializable) Parameter(com.centurylink.mdw.service.Parameter) JSONObject(org.json.JSONObject) DocumentReference(com.centurylink.mdw.model.value.variable.DocumentReference)

Example 2 with VariableTranslator

use of com.centurylink.mdw.common.translator.VariableTranslator in project mdw-designer by CenturyLinkCloud.

the class DesignerProxy method getVariableTranslator.

private VariableTranslator getVariableTranslator(String varType) {
    VariableTranslator vt = null;
    VariableTypeVO vo = dataAccess.getVariableType(varType);
    if (vo != null) {
        try {
            Class<? extends VariableTranslator> cl = Class.forName(vo.getTranslatorClass()).asSubclass(VariableTranslator.class);
            vt = cl.newInstance();
        } catch (Exception ex) {
            // can't create translator
            if (MdwPlugin.getSettings().isLogConnectErrors())
                PluginMessages.log(ex);
        }
    }
    return vt;
}
Also used : VariableTypeVO(com.centurylink.mdw.model.value.variable.VariableTypeVO) VariableTranslator(com.centurylink.mdw.common.translator.VariableTranslator) JSONException(org.json.JSONException) TranslationException(com.centurylink.mdw.common.exception.TranslationException) AuthenticationException(com.centurylink.mdw.auth.AuthenticationException) IOException(java.io.IOException) XmlException(org.apache.xmlbeans.XmlException) ValidationException(com.centurylink.mdw.designer.utils.ValidationException) DataAccessOfflineException(com.centurylink.mdw.dataaccess.DataAccessOfflineException) ZipException(java.util.zip.ZipException) DataAccessException(com.centurylink.mdw.common.exception.DataAccessException) FileNotFoundException(java.io.FileNotFoundException) RemoteException(java.rmi.RemoteException)

Example 3 with VariableTranslator

use of com.centurylink.mdw.common.translator.VariableTranslator in project mdw-designer by CenturyLinkCloud.

the class VariableHelper method isDocumentVariable.

/**
 * This is another cheaper way for better guessing whether the variable
 * is a document variable, when variable instance value is available
 * @param vartype
 * @param value variable instance value
 * @return
 */
public static boolean isDocumentVariable(String vartype, String value) {
    VariableTranslator translator;
    VariableTypeVO vo = VariableTypeCache.getVariableTypeVO(vartype);
    if (vo == null)
        return false;
    try {
        Class<?> cl = Class.forName(vo.getTranslatorClass());
        translator = (VariableTranslator) cl.newInstance();
        return (translator instanceof DocumentReferenceTranslator);
    } catch (Exception e) {
        if (value == null)
            return false;
        return value.startsWith("DOCUMENT:");
    }
}
Also used : VariableTypeVO(com.centurylink.mdw.model.value.variable.VariableTypeVO) DocumentReferenceTranslator(com.centurylink.mdw.common.translator.DocumentReferenceTranslator) VariableTranslator(com.centurylink.mdw.common.translator.VariableTranslator)

Example 4 with VariableTranslator

use of com.centurylink.mdw.common.translator.VariableTranslator in project mdw-designer by CenturyLinkCloud.

the class DesignerProxy method isDocumentVariable.

private boolean isDocumentVariable(String type, String value) {
    VariableTranslator translator;
    VariableTypeVO vo = dataAccess.getVariableType(type);
    if (vo == null)
        return false;
    try {
        Class<?> cl = Class.forName(vo.getTranslatorClass());
        translator = (VariableTranslator) cl.newInstance();
        return (translator instanceof DocumentReferenceTranslator);
    } catch (Exception e) {
        if (value == null)
            return false;
        return value.startsWith("DOCUMENT:");
    }
}
Also used : VariableTypeVO(com.centurylink.mdw.model.value.variable.VariableTypeVO) DocumentReferenceTranslator(com.centurylink.mdw.common.translator.DocumentReferenceTranslator) VariableTranslator(com.centurylink.mdw.common.translator.VariableTranslator) JSONException(org.json.JSONException) TranslationException(com.centurylink.mdw.common.exception.TranslationException) AuthenticationException(com.centurylink.mdw.auth.AuthenticationException) IOException(java.io.IOException) XmlException(org.apache.xmlbeans.XmlException) ValidationException(com.centurylink.mdw.designer.utils.ValidationException) DataAccessOfflineException(com.centurylink.mdw.dataaccess.DataAccessOfflineException) ZipException(java.util.zip.ZipException) DataAccessException(com.centurylink.mdw.common.exception.DataAccessException) FileNotFoundException(java.io.FileNotFoundException) RemoteException(java.rmi.RemoteException)

Example 5 with VariableTranslator

use of com.centurylink.mdw.common.translator.VariableTranslator in project mdw-designer by CenturyLinkCloud.

the class VariableHelper method isDocumentVariable.

/**
 * Check if the variable type is of a document.
 * Custom variable translators must be loaded from server to make
 * the decision precise.
 *
 * @param vartype
 * @param dao
 * @return
 */
public static boolean isDocumentVariable(String vartype, DesignerDataAccess dao) {
    VariableTranslator translator;
    VariableTypeVO vo = VariableTypeCache.getVariableTypeVO(vartype);
    if (vo == null)
        return false;
    try {
        Class<?> cl = Class.forName(vo.getTranslatorClass());
        translator = (VariableTranslator) cl.newInstance();
    } catch (Exception e) {
        e.printStackTrace();
        return false;
    }
    return (translator instanceof DocumentReferenceTranslator);
}
Also used : VariableTypeVO(com.centurylink.mdw.model.value.variable.VariableTypeVO) DocumentReferenceTranslator(com.centurylink.mdw.common.translator.DocumentReferenceTranslator) VariableTranslator(com.centurylink.mdw.common.translator.VariableTranslator)

Aggregations

VariableTranslator (com.centurylink.mdw.common.translator.VariableTranslator)5 VariableTypeVO (com.centurylink.mdw.model.value.variable.VariableTypeVO)5 AuthenticationException (com.centurylink.mdw.auth.AuthenticationException)3 DataAccessException (com.centurylink.mdw.common.exception.DataAccessException)3 TranslationException (com.centurylink.mdw.common.exception.TranslationException)3 DocumentReferenceTranslator (com.centurylink.mdw.common.translator.DocumentReferenceTranslator)3 DataAccessOfflineException (com.centurylink.mdw.dataaccess.DataAccessOfflineException)3 ValidationException (com.centurylink.mdw.designer.utils.ValidationException)3 FileNotFoundException (java.io.FileNotFoundException)3 IOException (java.io.IOException)3 RemoteException (java.rmi.RemoteException)3 ZipException (java.util.zip.ZipException)3 XmlException (org.apache.xmlbeans.XmlException)3 JSONException (org.json.JSONException)3 SelfSerializable (com.centurylink.mdw.common.translator.SelfSerializable)1 JavaObjectTranslator (com.centurylink.mdw.common.translator.impl.JavaObjectTranslator)1 DocumentReference (com.centurylink.mdw.model.value.variable.DocumentReference)1 Parameter (com.centurylink.mdw.service.Parameter)1 Resource (com.centurylink.mdw.service.Resource)1 JSONObject (org.json.JSONObject)1