/** * 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.javascript.fortest; import java.util.Arrays; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import uri.cxf_apache_org.jstest.any.AcceptAny; import uri.cxf_apache_org.jstest.types.any.AcceptAny1; import uri.cxf_apache_org.jstest.types.any.AcceptAnyN; import uri.cxf_apache_org.jstest.types.any.AcceptAnyOptional; import uri.cxf_apache_org.jstest.types.any.ReturnAny1; import uri.cxf_apache_org.jstest.types.any.ReturnAnyN; import uri.cxf_apache_org.jstest.types.any.ReturnAnyOptional; import uri.cxf_apache_org.jstest.types.any.alts.Alternative1; import uri.cxf_apache_org.jstest.types.any.alts.Alternative2; /** * */ //@org.apache.cxf.feature.Features(features = "org.apache.cxf.feature.LoggingFeature") public class AnyImpl implements AcceptAny { private Object any1value; private Object[] anyNvalue; private Object anyOptionalValue; private String before; private String after; private boolean returnOptional; private CountDownLatch onewayNotify; public void reset() { any1value = null; anyNvalue = null; anyOptionalValue = null; before = null; after = null; } /** * * * * @return Returns the any1value. */ public Object getAny1value() { return any1value; } /** * * * * @return Returns the anyNvalue. */ public Object[] getAnyNvalue() { return anyNvalue; } /** * * * * @return Returns the anyOptionalValue. */ public Object getAnyOptionalValue() { return anyOptionalValue; } /** * * * * @return Returns the before. */ public String getBefore() { return before; } /** * * * * @return Returns the after. */ public String getAfter() { return after; } /** * @return Returns the returnOptional. */ public boolean isReturnOptional() { return returnOptional; } /** * @param returnOptional The returnOptional to set. */ public void setReturnOptional(boolean returnOptional) { this.returnOptional = returnOptional; } public void acceptAny1(AcceptAny1 in) { before = in.getBefore(); after = in.getAfter(); any1value = in.getAny(); onewayNotify.countDown(); } public void acceptAnyN(AcceptAnyN in) { before = in.getBefore(); after = in.getAfter(); anyNvalue = in.getAny().toArray(); onewayNotify.countDown(); } public void acceptAnyOptional(AcceptAnyOptional in) { before = in.getBefore(); after = in.getAfter(); anyOptionalValue = in.getAny(); onewayNotify.countDown(); } public AcceptAny1 returnAny1(ReturnAny1 in) { AcceptAny1 r = new AcceptAny1(); r.setBefore("1before"); Alternative1 a1 = new Alternative1(); a1.setChalk("dover"); r.setAny(a1); r.setAfter("1after"); return r; } public AcceptAnyN returnAnyN(ReturnAnyN in) { AcceptAnyN r = new AcceptAnyN(); r.setBefore("Nbefore"); r.setAfter("Nafter"); Object[] objects = new Object[4]; Alternative1 a1 = new Alternative1(); a1.setChalk("blackboard"); objects[0] = a1; objects[1] = null; Alternative2 a2 = new Alternative2(); a2.setCheese(42); objects[2] = a2; a1 = new Alternative1(); a1.setChalk("sidewalk"); objects[3] = a1; r.getAny().addAll(Arrays.asList(objects)); return r; } public AcceptAnyOptional returnAnyOptional(ReturnAnyOptional in) { AcceptAnyOptional r = new AcceptAnyOptional(); r.setBefore("opBefore"); r.setAfter("opAfter"); if (returnOptional) { Alternative2 a2 = new Alternative2(); a2.setCheese(24); r.setAny(a2); } else { r.setAny(null); } return r; } public void dummyAlts(uri.cxf_apache_org.jstest.types.any.alts.Alternative1 in) { // not used, just here to force some types into sight. } public void prepareToWaitForOneWay() { onewayNotify = new CountDownLatch(1); } public void waitForOneWay() { if (onewayNotify == null) { return; } try { if (!onewayNotify.await(5000, TimeUnit.MILLISECONDS)) { throw new RuntimeException("Did not get the oneway!"); } } catch (InterruptedException e) { // } finally { onewayNotify = null; } } }