alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Apache CXF example source code file (SystemExceptionHelper.java)

This example Apache CXF source code file (SystemExceptionHelper.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Apache CXF tags/keywords

bad_operation, corba, inv_flag, object_not_exist, string, string, structmember, systemexception, systemexception, systemexceptionhelper, systemexceptionhelper, transaction_rolledback, transaction_unavailable, typecode, typecode

The Apache CXF SystemExceptionHelper.java source code

/**
 * 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.cxf.binding.corba.interceptors;

import org.omg.CORBA.Any;
import org.omg.CORBA.ORB;
import org.omg.CORBA.StructMember;
import org.omg.CORBA.SystemException;
import org.omg.CORBA.TCKind;
import org.omg.CORBA.TypeCode;
import org.omg.CORBA.portable.InputStream;
import org.omg.CORBA.portable.OutputStream;

public final class SystemExceptionHelper 
    implements org.omg.CORBA.portable.Streamable {
    
    private static final int BAD_CONTEXT = 0;
    private static final int BAD_INV_ORDER = 1;
    private static final int BAD_OPERATION = 2;
    private static final int BAD_PARAM = 3;
    private static final int BAD_QOS = 4;
    private static final int BAD_TYPECODE = 5;
    private static final int CODESET_INCOMPATIBLE = 6;
    private static final int COMM_FAILURE = 7;
    private static final int DATA_CONVERSION = 8;
    private static final int FREE_MEM = 9;
    private static final int IMP_LIMIT = 10;
    private static final int INITIALIZE = 11;
    private static final int INTERNAL = 12;
    private static final int INTF_REPOS = 13;
    private static final int INVALID_TRANSACTION = 14;
    private static final int INV_FLAG = 15;
    private static final int INV_IDENT = 16;
    private static final int INV_OBJREF = 17;
    private static final int INV_POLICY = 18;
    private static final int MARSHAL = 19;
    private static final int NO_IMPLEMENT = 20;
    private static final int NO_MEMORY = 21;
    private static final int NO_PERMISSION = 22;
    private static final int NO_RESOURCES = 23;
    private static final int NO_RESPONSE = 24;
    private static final int OBJECT_NOT_EXIST = 25;
    private static final int OBJ_ADAPTER = 26;
    private static final int PERSIST_STORE = 27;
    private static final int REBIND = 28;
    private static final int TIMEOUT = 29;
    private static final int TRANSACTION_MODE = 30;
    private static final int TRANSACTION_REQUIRED = 31;
    private static final int TRANSACTION_ROLLEDBACK = 32;
    private static final int TRANSACTION_UNAVAILABLE = 33;
    private static final int TRANSIENT = 34;
    private static final int UNKNOWN = 35;
    
    private static final String[] IDS = {
        "IDL:omg.org/CORBA/BAD_CONTEXT:1.0",
        "IDL:omg.org/CORBA/BAD_INV_ORDER:1.0",
        "IDL:omg.org/CORBA/BAD_OPERATION:1.0", "IDL:omg.org/CORBA/BAD_PARAM:1.0",
        "IDL:omg.org/CORBA/BAD_QOS:1.0", "IDL:omg.org/CORBA/BAD_TYPECODE:1.0",
        "IDL:omg.org/CORBA/CODESET_INCOMPATIBLE:1.0",
        "IDL:omg.org/CORBA/COMM_FAILURE:1.0",
        "IDL:omg.org/CORBA/DATA_CONVERSION:1.0",
        "IDL:omg.org/CORBA/FREE_MEM:1.0", "IDL:omg.org/CORBA/IMP_LIMIT:1.0",
        "IDL:omg.org/CORBA/INITIALIZE:1.0", "IDL:omg.org/CORBA/INTERNAL:1.0",
        "IDL:omg.org/CORBA/INTF_REPOS:1.0",
        "IDL:omg.org/CORBA/INVALID_TRANSACTION:1.0",
        "IDL:omg.org/CORBA/INV_FLAG:1.0", "IDL:omg.org/CORBA/INV_IDENT:1.0",
        "IDL:omg.org/CORBA/INV_OBJREF:1.0", "IDL:omg.org/CORBA/INV_POLICY:1.0",
        "IDL:omg.org/CORBA/MARSHAL:1.0", "IDL:omg.org/CORBA/NO_IMPLEMENT:1.0",
        "IDL:omg.org/CORBA/NO_MEMORY:1.0", "IDL:omg.org/CORBA/NO_PERMISSION:1.0",
        "IDL:omg.org/CORBA/NO_RESOURCES:1.0",
        "IDL:omg.org/CORBA/NO_RESPONSE:1.0",
        "IDL:omg.org/CORBA/OBJECT_NOT_EXIST:1.0",
        "IDL:omg.org/CORBA/OBJ_ADAPTER:1.0",
        "IDL:omg.org/CORBA/PERSIST_STORE:1.0", "IDL:omg.org/CORBA/REBIND:1.0",
        "IDL:omg.org/CORBA/TIMEOUT:1.0",
        "IDL:omg.org/CORBA/TRANSACTION_MODE:1.0",
        "IDL:omg.org/CORBA/TRANSACTION_REQUIRED:1.0",
        "IDL:omg.org/CORBA/TRANSACTION_ROLLEDBACK:1.0",
        "IDL:omg.org/CORBA/TRANSACTION_UNAVAILABLE:1.0",
        "IDL:omg.org/CORBA/TRANSIENT:1.0", "IDL:omg.org/CORBA/UNKNOWN:1.0"};


    SystemException value;
    TypeCode typeCode;
    
    private SystemExceptionHelper() {
    }
    private SystemExceptionHelper(SystemException ex) {
        value = ex;
    }
    
    

    private static int binarySearch(String[] arr, String value) {
        int left = 0;
        int right = arr.length;
        int index = -1;

        while (left < right) {
            int m = (left + right) / 2;
            int res = arr[m].compareTo(value);
            if (res == 0) {
                index = m;
                break;
            } else if (res > 0) {
                right = m;
            } else {
                left = m + 1;
            }
        }

        return index;
    }


    public static void insert(Any any, SystemException val) {
        any.insert_Streamable(new SystemExceptionHelper(val));
    }

    
    
    //CHECKSTYLE:OFF 
    //NCSS is to high for this due to the massive switch statement
    public static SystemException read(org.omg.CORBA.portable.InputStream in) {

        String id = in.read_string();
        int minor = in.read_ulong();
        org.omg.CORBA.CompletionStatus status = org.omg.CORBA.CompletionStatus.from_int(in.read_ulong());

        int n = binarySearch(IDS, id);
        SystemException ex = null;
        switch (n) {
        case BAD_CONTEXT:
            ex = new org.omg.CORBA.BAD_CONTEXT(minor, status);
            break;
        case BAD_INV_ORDER:
            ex = new org.omg.CORBA.BAD_INV_ORDER(minor, status);
            break;
        case BAD_OPERATION:
            ex = new org.omg.CORBA.BAD_OPERATION(minor, status);
            break;
        case BAD_PARAM:
            ex = new org.omg.CORBA.BAD_PARAM(minor, status);
            break;
        case BAD_QOS:
            ex = new org.omg.CORBA.BAD_QOS(minor, status);
            break;
        case BAD_TYPECODE:
            ex = new org.omg.CORBA.BAD_TYPECODE(minor, status);
            break;
        case CODESET_INCOMPATIBLE:
            ex = new org.omg.CORBA.CODESET_INCOMPATIBLE(minor, status);
            break;
        case COMM_FAILURE:
            ex = new org.omg.CORBA.COMM_FAILURE(minor, status);
            break;
        case DATA_CONVERSION:
            ex = new org.omg.CORBA.DATA_CONVERSION(minor, status);
            break;
        case FREE_MEM:
            ex = new org.omg.CORBA.FREE_MEM(minor, status);
            break;
        case IMP_LIMIT:
            ex = new org.omg.CORBA.IMP_LIMIT(minor, status);
            break;
        case INITIALIZE:
            ex = new org.omg.CORBA.INITIALIZE(minor, status);
            break;
        case INTERNAL:
            ex = new org.omg.CORBA.INTERNAL(minor, status);
            break;
        case INTF_REPOS:
            ex = new org.omg.CORBA.INTF_REPOS(minor, status);
            break;
        case INVALID_TRANSACTION:
            ex = new org.omg.CORBA.INVALID_TRANSACTION(minor, status);
            break;
        case INV_FLAG:
            ex = new org.omg.CORBA.INV_FLAG(minor, status);
            break;
        case INV_IDENT:
            ex = new org.omg.CORBA.INV_IDENT(minor, status);
            break;
        case INV_OBJREF:
            ex = new org.omg.CORBA.INV_OBJREF(minor, status);
            break;
        case INV_POLICY:
            ex = new org.omg.CORBA.INV_POLICY(minor, status);
            break;
        case MARSHAL:
            ex = new org.omg.CORBA.MARSHAL(minor, status);
            break;
        case NO_IMPLEMENT:
            ex = new org.omg.CORBA.NO_IMPLEMENT(minor, status);
            break;
        case NO_MEMORY:
            ex = new org.omg.CORBA.NO_MEMORY(minor, status);
            break;
        case NO_PERMISSION:
            ex = new org.omg.CORBA.NO_PERMISSION(minor, status);
            break;
        case NO_RESOURCES:
            ex = new org.omg.CORBA.NO_RESOURCES(minor, status);
            break;
        case NO_RESPONSE:
            ex = new org.omg.CORBA.NO_RESPONSE(minor, status);
            break;
        case OBJECT_NOT_EXIST:
            ex = new org.omg.CORBA.OBJECT_NOT_EXIST(minor, status);
            break;
        case OBJ_ADAPTER:
            ex = new org.omg.CORBA.OBJ_ADAPTER(minor, status);
            break;
        case PERSIST_STORE:
            ex = new org.omg.CORBA.PERSIST_STORE(minor, status);
            break;
        case REBIND:
            ex = new org.omg.CORBA.REBIND(minor, status);
            break;
        case TIMEOUT:
            ex = new org.omg.CORBA.TIMEOUT(minor, status);
            break;
        case TRANSACTION_MODE:
            ex = new org.omg.CORBA.TRANSACTION_MODE(minor, status);
            break;
        case TRANSACTION_REQUIRED:
            ex = new org.omg.CORBA.TRANSACTION_REQUIRED(minor, status);
            break;
        case TRANSACTION_ROLLEDBACK:
            ex = new org.omg.CORBA.TRANSACTION_ROLLEDBACK(minor, status);
            break;
        case TRANSACTION_UNAVAILABLE:
            ex = new org.omg.CORBA.TRANSACTION_UNAVAILABLE(minor, status);
            break;
        case TRANSIENT:
            ex = new org.omg.CORBA.TRANSIENT(minor, status);
            break;
        case UNKNOWN:
        default:
            ex = new org.omg.CORBA.UNKNOWN(minor, status);
        }
        return ex;
    }
    //CHECKSTYLE:ON
    
    
    
    public void _read(InputStream instream) {
        value = read(instream);
    }
    
    public TypeCode _type() {
        if (typeCode == null) {
            ORB orb = ORB.init();
            StructMember[] smBuf = new StructMember[2];
            TypeCode minortc = orb.get_primitive_tc(TCKind.tk_long);
            smBuf[0] = new StructMember("minor", minortc, null);

            String csLabels[] = {"COMPLETED_YES", "COMPLETED_NO", "COMPLETED_MAYBE"};
            TypeCode completedtc = orb
                .create_enum_tc("IDL:omg.org/CORBA/CompletionStatus:1.0",
                              "CompletionStatus", csLabels);

            smBuf[1] = new StructMember("completed", completedtc, null);
            String id;
            String name;
            if (value == null) {
                name = "SystemException";
                id = "IDL:omg.org/CORBA/SystemException:1.0";
            } else {
                String className = value.getClass().getName();
                name = className.substring(className.lastIndexOf('.') + 1);
                id = "IDL:omg.org/CORBA/" + name + ":1.0";
            }
            
            typeCode = orb.create_exception_tc(id, name, smBuf);
        }
        return typeCode;
    }
    public void _write(OutputStream outstream) {
        String id;
        if (value == null) {
            value = new org.omg.CORBA.UNKNOWN();
            id = "IDL:omg.org/CORBA/UNKNOWN";
        } else {
            String className = value.getClass().getName();
            id = "IDL:omg.org/CORBA/" 
                + className.substring(className.lastIndexOf('.') + 1) + ":1.0";
        }

        outstream.write_string(id);
        outstream.write_ulong(value.minor);
        outstream.write_ulong(value.completed.value());
    }

}

Other Apache CXF examples (source code examples)

Here is a short list of links related to this Apache CXF SystemExceptionHelper.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.