Mercurial > 510Connectbot
comparison src/com/trilead/ssh2/compression/CompressionFactory.java @ 0:0ce5cc452d02
initial version
author | Carl Byington <carl@five-ten-sg.com> |
---|---|
date | Thu, 22 May 2014 10:41:19 -0700 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:0ce5cc452d02 |
---|---|
1 /* | |
2 * ConnectBot: simple, powerful, open-source SSH client for Android | |
3 * Copyright 2007 Kenny Root, Jeffrey Sharkey | |
4 * | |
5 * Licensed under the Apache License, Version 2.0 (the "License"); | |
6 * you may not use this file except in compliance with the License. | |
7 * You may obtain a copy of the License at | |
8 * | |
9 * http://www.apache.org/licenses/LICENSE-2.0 | |
10 * | |
11 * Unless required by applicable law or agreed to in writing, software | |
12 * distributed under the License is distributed on an "AS IS" BASIS, | |
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 * See the License for the specific language governing permissions and | |
15 * limitations under the License. | |
16 */ | |
17 | |
18 package com.trilead.ssh2.compression; | |
19 | |
20 import java.util.Vector; | |
21 | |
22 /** | |
23 * @author Kenny Root | |
24 * | |
25 */ | |
26 public class CompressionFactory { | |
27 static class CompressorEntry { | |
28 String type; | |
29 String compressorClass; | |
30 | |
31 public CompressorEntry(String type, String compressorClass) { | |
32 this.type = type; | |
33 this.compressorClass = compressorClass; | |
34 } | |
35 } | |
36 | |
37 static Vector<CompressorEntry> compressors = new Vector<CompressorEntry>(); | |
38 | |
39 static { | |
40 /* Higher Priority First */ | |
41 compressors.addElement(new CompressorEntry("zlib", "com.trilead.ssh2.compression.Zlib")); | |
42 compressors.addElement(new CompressorEntry("zlib@openssh.com", "com.trilead.ssh2.compression.ZlibOpenSSH")); | |
43 compressors.addElement(new CompressorEntry("none", "")); | |
44 } | |
45 | |
46 public static String[] getDefaultCompressorList() { | |
47 String list[] = new String[compressors.size()]; | |
48 | |
49 for (int i = 0; i < compressors.size(); i++) { | |
50 CompressorEntry ce = compressors.elementAt(i); | |
51 list[i] = new String(ce.type); | |
52 } | |
53 | |
54 return list; | |
55 } | |
56 | |
57 public static void checkCompressorList(String[] compressorCandidates) { | |
58 for (int i = 0; i < compressorCandidates.length; i++) | |
59 getEntry(compressorCandidates[i]); | |
60 } | |
61 | |
62 public static ICompressor createCompressor(String type) { | |
63 try { | |
64 CompressorEntry ce = getEntry(type); | |
65 | |
66 if ("".equals(ce.compressorClass)) | |
67 return null; | |
68 | |
69 Class<?> cc = Class.forName(ce.compressorClass); | |
70 ICompressor cmp = (ICompressor) cc.newInstance(); | |
71 return cmp; | |
72 } | |
73 catch (Exception e) { | |
74 throw new IllegalArgumentException("Cannot instantiate " + type); | |
75 } | |
76 } | |
77 | |
78 private static CompressorEntry getEntry(String type) { | |
79 for (int i = 0; i < compressors.size(); i++) { | |
80 CompressorEntry ce = compressors.elementAt(i); | |
81 | |
82 if (ce.type.equals(type)) | |
83 return ce; | |
84 } | |
85 | |
86 throw new IllegalArgumentException("Unkown algorithm " + type); | |
87 } | |
88 } |