/* * Decompiled with CFR 0.152. * * Could not load the following classes: * com.tridium.net.HttpUtil * javax.baja.naming.BHost * javax.baja.naming.BIpHost * javax.baja.naming.BStationSessionScheme * javax.baja.naming.OrdQuery * javax.baja.naming.OrdQueryList * javax.baja.naming.OrdTarget * javax.baja.naming.SyntaxException * javax.baja.naming.UnresolvedException * javax.baja.nre.util.TextUtil * javax.baja.security.AuthenticationException * javax.baja.sys.BComponent * javax.baja.sys.BObject * javax.baja.sys.Sys * javax.baja.sys.Type */ package com.tridium.fox.sys; import com.tridium.fox.sys.BFoxSession; import com.tridium.fox.sys.LocalizableServerException; import com.tridium.net.HttpUtil; import javax.baja.naming.BHost; import javax.baja.naming.BIpHost; import javax.baja.naming.BStationSessionScheme; import javax.baja.naming.OrdQuery; import javax.baja.naming.OrdQueryList; import javax.baja.naming.OrdTarget; import javax.baja.naming.SyntaxException; import javax.baja.naming.UnresolvedException; import javax.baja.nre.util.TextUtil; import javax.baja.security.AuthenticationException; import javax.baja.sys.BComponent; import javax.baja.sys.BObject; import javax.baja.sys.Sys; import javax.baja.sys.Type; /* * Illegal identifiers - consider using --renameillegalidents true */ public class BFoxScheme extends BStationSessionScheme { public static final int DEFAULT_PORT = 1911; public static final String SCHEME_NAME = "fox"; public static final BFoxScheme INSTANCE = new BFoxScheme(); public static final Type TYPE; static /* synthetic */ Class class$com$tridium$fox$sys$BFoxScheme; public OrdQuery parse(String string) { return new FoxQuery(string); } public OrdTarget resolve(OrdTarget ordTarget, OrdQuery ordQuery) throws SyntaxException, UnresolvedException { Object object; BHost bHost; BHost bHost2 = null; BObject bObject = ordTarget.get(); bHost2 = bObject instanceof BHost ? (BHost)bObject : ((BComponent)bObject).getHost(); FoxQuery foxQuery = (FoxQuery)ordQuery; int n = foxQuery.port; String[] stringArray = foxQuery.tunnelAuthorities; BFoxSession bFoxSession = BFoxSession.make(null, bHost2, n, false, stringArray); if (Sys.isStationStarted() && stringArray != null && stringArray.length > 0 && (bHost = BHost.getHost((String)(object = BFoxScheme.parseHost(stringArray[stringArray.length - 1])))) == null) { bHost = new BIpHost((String)object); BHost.mount((BHost)bHost); } try { bFoxSession.connect(); if (bFoxSession.getUseFoxs() && (object = (BFoxSession)bHost2.getNavChild(BFoxSession.buildNavName(bFoxSession.getPort(), true, stringArray))) != null) { ((BFoxSession)object).close(); } return new OrdTarget(ordTarget, (BObject)bFoxSession); } catch (LocalizableServerException localizableServerException) { if (localizableServerException.getLexiconModule().equals(SCHEME_NAME) && localizableServerException.getLexiconKey().equals("error.NoPermissionForStation")) { bFoxSession.disconnect(); } throw localizableServerException; } catch (AuthenticationException authenticationException) { throw authenticationException; } catch (Throwable throwable) { throw new UnresolvedException(ordQuery.toString(), throwable); } } public int getDefaultPort() { return 1911; } static String parseHost(String string) { return HttpUtil.parseHost((String)string); } static int parsePort(String string) { return HttpUtil.parsePort((String)string, (int)1911); } static String[] validateAuthorities(String[] stringArray) { if (stringArray == null) { return null; } int n = stringArray.length; if (n < 1) { return null; } String[] stringArray2 = new String[n]; int n2 = 0; int n3 = 0; while (n3 < n) { if (stringArray[n3] != null && !stringArray[n3].equals("")) { stringArray2[n2] = stringArray[n3]; ++n2; } ++n3; } String[] stringArray3 = new String[n2]; System.arraycopy(stringArray2, 0, stringArray3, 0, n2); return stringArray3; } public Type getType() { return TYPE; } static /* synthetic */ Class class(String string, boolean bl) { try { Class clazz = Class.forName(string); if (!bl) { clazz = clazz.getComponentType(); } return clazz; } catch (ClassNotFoundException classNotFoundException) { throw new NoClassDefFoundError(classNotFoundException.getMessage()); } } private BFoxScheme() { super(SCHEME_NAME); } static { Class clazz = class$com$tridium$fox$sys$BFoxScheme; if (clazz == null) { clazz = class$com$tridium$fox$sys$BFoxScheme = BFoxScheme.class("[Lcom.tridium.fox.sys.BFoxScheme;", false); } TYPE = Sys.loadType((Class)clazz); } /* * Illegal identifiers - consider using --renameillegalidents true */ public static class FoxQuery implements OrdQuery { int port; String[] tunnelAuthorities; public boolean isHost() { return false; } public boolean isSession() { return true; } public void normalize(OrdQueryList ordQueryList, int n) { ordQueryList.shiftToHost(n); } public String getScheme() { return BFoxScheme.SCHEME_NAME; } public String getBody() { StringBuffer stringBuffer = new StringBuffer(); if (this.port != 1911) { stringBuffer.append(String.valueOf(this.port)); } if (this.tunnelAuthorities != null) { int n = 0; while (n < this.tunnelAuthorities.length) { if (this.tunnelAuthorities[n] != null && !this.tunnelAuthorities[n].equals("")) { stringBuffer.append("/").append(this.tunnelAuthorities[n]); } ++n; } } return stringBuffer.toString(); } public String toString() { return "fox:" + this.getBody(); } public int getPort() { return this.port; } public String[] getTunnelAuthorities() { return this.tunnelAuthorities; } private final /* synthetic */ void this() { this.tunnelAuthorities = null; } FoxQuery(String string) { this.this(); string = string.trim(); if (string.length() == 0) { this.port = 1911; } else { int n = string.indexOf(47); if (n >= 0) { this.port = n == 0 ? 1911 : Integer.parseInt(string.substring(0, n)); string = string.substring(n); this.tunnelAuthorities = BFoxScheme.validateAuthorities(TextUtil.splitAndTrim((String)string, (char)'/')); } else { this.port = Integer.parseInt(string); } } } FoxQuery(int n) { this.this(); this.port = n; } FoxQuery(int n, String[] stringArray) { this.this(); this.port = n; this.tunnelAuthorities = BFoxScheme.validateAuthorities(stringArray); } } }