19 package org.openoffice.xmerge.util.registry;
34 private static final ArrayList<ConverterInfo>
converterInfoList =
new ArrayList<ConverterInfo>();
49 if (ci.getDisplayName() == null) {
51 "Converter must have valid name.");
54 if (ci.getClassImpl() == null) {
56 "Converter must have valid class implementation specified.");
59 if (ci.getOfficeMime() == null) {
61 "Converter must have valid office mime specified.");
64 if (! ci.getDeviceMime().hasNext()) {
66 "Converter must have valid device mime specified.");
73 if (ci.getDisplayName().equals(converterInfo.getDisplayName())) {
75 "Converter with specified display name already exists.");
83 converterInfoList.add(ci);
100 public static void addPlugIn(Iterator<ConverterInfo> jarEnum)
103 while (jarEnum.hasNext()) {
117 return converterInfoList.iterator();
133 for (Iterator<ConverterInfo> it = converterInfoList.iterator(); it.hasNext();) {
156 for (Iterator<ConverterInfo> it = converterInfoList.iterator(); it.hasNext();) {
180 if (deviceMime == null ||
187 String toDeviceInfo = converterInfo.getOfficeMime();
188 Iterator<String> fromEnum = converterInfo.getDeviceMime();
191 while (fromEnum.hasNext()) {
192 String fromDeviceInfo = fromEnum.next();
193 if (deviceMime.trim().equals(fromDeviceInfo) &&
194 officeMime.trim().equals(toDeviceInfo)) {
195 return converterInfo;
217 if (deviceFromMime == null || deviceToMime == null) {
224 Iterator<ConverterInfo> cifEnum = converterInfoList.iterator();
225 while (cifEnum.hasNext()) {
227 converterInfo[0] = cifEnum.next();
229 Iterator<String> fromEnum = converterInfo[0].
getDeviceMime();
233 while (fromEnum.hasNext()) {
234 String fromDeviceInfo = fromEnum.next();
236 if (deviceFromMime.trim().equals(fromDeviceInfo)) {
240 Iterator<ConverterInfo> citEnum = converterInfoList.iterator();
241 while (citEnum.hasNext()) {
243 converterInfo[1] = citEnum.next();
249 while (toEnum.hasNext()) {
250 String toDeviceInfo = toEnum.next();
251 if (deviceToMime.trim().equals(toDeviceInfo) &&
252 fromOfficeInfo.equals(toOfficeInfo)) {
255 return converterInfo;
265 static String readLine(BufferedReader br)
throws IOException{
266 String ret = br.readLine();
268 throw new IOException(
"short read");
279 public static void main(String args[]) {
282 boolean validate =
false;
283 InputStreamReader isr =
new InputStreamReader(
System.in);
284 BufferedReader br =
new BufferedReader(isr);
287 boolean exitFlag =
false;
290 System.out.println(
"\nMenu:");
291 System.out.println(
"(L)oad plug-ins from a jar file");
292 System.out.println(
"(D)isplay name unload");
293 System.out.println(
"(J)ar name unload");
294 System.out.println(
"(F)ind ConverterInfo");
295 System.out.println(
"(C)ind ConverterInfo chain");
296 System.out.println(
"(V)iew plug-ins");
297 System.out.println(
"(T)oggle Validation");
298 System.out.println(
"(Q)uit\n");
301 c = readLine(br).toUpperCase().trim().charAt(0);
303 System.out.println(
"Invalid entry");
304 System.out.println(
"Error msg: " + e.getMessage());
315 }
else if (c ==
'L') {
317 System.out.println(
"Enter path to jarfile: ");
319 String jarname = readLine(br).trim();
322 System.out.println(
"Cannot load plug-in ConverterFactory implementation.");
323 System.out.println(
"Error msg: " + e.getMessage());
325 System.out.println(
"Error adding data to registry");
326 System.out.println(
"Error msg: " + e.getMessage());
334 System.out.println(
"Error adding data to registry");
335 System.out.println(
"Error msg: " + e.getMessage());
340 }
else if (c ==
'T') {
342 System.out.println(
"Validation switched off");
345 System.out.println(
"Validation switched on");
348 }
else if (c ==
'D' || c ==
'J') {
351 System.out.println(
"Enter display name: ");
353 System.out.println(
"Enter path to jarfile: ");
367 System.out.println(
"Remove successful.");
369 System.out.println(
"Remove failed.");
373 System.out.println(
"Error removing value from registry");
374 System.out.println(
"Error msg: " + e.getMessage());
379 }
else if (c ==
'F' || c ==
'C') {
381 String findMimeOne = null;
382 String findMimeTwo = null;
385 System.out.println(
"Enter device mime: ");
387 System.out.println(
"Enter device from mime: ");
391 findMimeOne = readLine(br).trim();
393 System.out.println(
"Error adding data to registry");
394 System.out.println(
"Error msg: " + e.getMessage());
398 System.out.println(
"Enter office mime: ");
400 System.out.println(
"Enter device to mime: ");
404 findMimeTwo = readLine(br).trim();
406 System.out.println(
"Error adding data to registry");
407 System.out.println(
"Error msg: " + e.getMessage());
412 if (foundInfo != null) {
413 System.out.println(
" Found ConverterInfo");
416 System.out.println(
" Did not find ConverterInfo");
421 if (foundInfo != null && foundInfo[0] != null && foundInfo[1] != null ) {
422 System.out.println(
" Found ConverterInfo Chain");
423 System.out.println(
" DisplayName : " + foundInfo[0].getDisplayName());
424 System.out.println(
" DisplayName : " + foundInfo[1].getDisplayName());
426 System.out.println(
" Did not find ConverterInfo");
432 }
else if (c ==
'V') {
437 while (ciEnum.hasNext())
440 System.out.println(
" Displaying converter number " + ciCnt);
449 while (fromEnum.hasNext())
451 System.out.println(
" DeviceMime : (#" + feCnt +
") : " +
456 System.out.println(
" DeviceMime : None specified");
470 System.out.println(
"No converters registered");
473 System.out.println(
"Invalid input");
static boolean removeByName(String name)
Removes any.
static ConverterInfo[] findConverterInfoChain(String deviceFromMime, String deviceToMime)
Returns an array of two.
static void main(String args[])
Main to let the user specify what plug-ins to register from jarfiles and to display the currently reg...
static boolean removeByJar(String jar)
Removes any.
static Iterator< ConverterInfo > getConverterInfoEnumeration()
Returns an.
String getVersion()
Returns the version.
boolean canDeserialize()
Returns.
String getVendor()
Returns the vendor name.
String getDescription()
Returns the description.
static final ArrayList< ConverterInfo > converterInfoList
String getOfficeMime()
Returns the office mime-type.
String getDisplayName()
Returns the display name.
exports com.sun.star. java
Iterator< String > getDeviceMime()
Returns an.
Manages the converter plug-ins that are currently active.
static void addPlugIn(ConverterInfo ci)
Adds a converter plug-in to the registry.
String getXsltDeserial()
Returns a.
boolean canMerge()
Returns.
static ConverterInfo findConverterInfo(String deviceMime, String officeMime)
Returns the.
static void addPlugIn(Iterator< ConverterInfo > jarEnum)
Adds a list of converter plug-ins to the registry.
String getClassImpl()
Returns the implementation class name of PluginFactory.
static boolean isValidOfficeType(String officeMime)
Returns.
String getXsltSerial()
Returns a.
boolean canSerialize()
Returns.
Class for storing the information about a converter plug-in.
String getJarName()
Returns the jar file name.
Iterator< ConverterInfo > getConverterInfoEnumeration()
Returns an.