|
Apache CXF example source code file (CorbaStructEventProducer.java)
The Apache CXF CorbaStructEventProducer.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.types; import org.apache.cxf.service.model.ServiceInfo; import org.omg.CORBA.ORB; public class CorbaStructEventProducer extends AbstractStartEndEventProducer { public CorbaStructEventProducer(CorbaObjectHandler h, ServiceInfo service, ORB orbRef) { CorbaStructHandler handler = (CorbaStructHandler) h; name = handler.getName(); iterator = handler.members.iterator(); serviceInfo = service; orb = orbRef; if (handler.members.isEmpty() && handler.getSimpleName().equals(handler.getIdlType().getLocalPart() + "_f")) { state = states.length; } } public int next() { int event = states[state]; if (event != 0) { state++; } else if (currentEventProducer != null && currentEventProducer.hasNext()) { event = currentEventProducer.next(); } else if (iterator.hasNext()) { CorbaObjectHandler obj = iterator.next(); //Special case for primitive sequence inside struct if ((obj instanceof CorbaSequenceHandler) && (CorbaHandlerUtils.isPrimitiveIDLTypeSequence(obj)) && (!((CorbaSequenceHandler)obj).getElements().isEmpty()) && (!CorbaHandlerUtils.isOctets(obj.getType()))) { currentEventProducer = new CorbaPrimitiveSequenceEventProducer(obj, serviceInfo, orb); } else if (obj.getSimpleName().equals(obj.getIdlType().getLocalPart() + "_f")) { //some "special cases" we need to make sure are mapped correctly currentEventProducer = CorbaHandlerUtils.getTypeEventProducer(obj, serviceInfo, orb); } else { currentEventProducer = CorbaHandlerUtils.getTypeEventProducer(obj, serviceInfo, orb); } if (currentEventProducer.hasNext()) { event = currentEventProducer.next(); } else { currentEventProducer = null; return next(); } } else { // all done with content, move past state 0 event = states[++state]; state++; currentEventProducer = null; } return event; } } Other Apache CXF examples (source code examples)Here is a short list of links related to this Apache CXF CorbaStructEventProducer.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
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.