javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/CLDCCompatibilityDelegate.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javauis/eswt_qt/org.eclipse.swt/Eclipse SWT/common_j2me/org/eclipse/swt/internal/CLDCCompatibilityDelegate.java Mon May 03 12:27:20 2010 +0300
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Nokia Corporation - S60 implementation
+ *******************************************************************************/
+package org.eclipse.swt.internal;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+import javax.microedition.io.Connector;
+import javax.microedition.io.file.FileConnection;
+
+public class CLDCCompatibilityDelegate implements CompatibilityDelegate {
+
+ public CLDCCompatibilityDelegate(){
+ super();
+ }
+
+ public InputStream getInputStreamFromFile(String path) throws IOException {
+ String jsr75Path = convertPathToSpecific(path);
+
+ InputStream inputStream = null;
+ try{
+ FileConnection fileConct = (FileConnection)Connector.open(jsr75Path);
+ inputStream = fileConct.openInputStream();
+ fileConct.close();
+ }
+ catch (IOException e) {
+ throw e;
+ }
+ catch(Exception e)
+ {
+ throw new IOException(e.getMessage());
+ }
+ return inputStream;
+ }
+
+ public String convertPathToSpecific(String path) {
+ String jsr75Path = path;
+ if (!jsr75Path.startsWith("file:///")) {
+ // In JSR 75 the file separator is '/' and not '\'
+ jsr75Path = jsr75Path.replace('\\', '/');
+ jsr75Path = "file:///" + jsr75Path;
+ }
+
+ return jsr75Path;
+ }
+
+ public String convertPathFromSpecific(String jsr75Path) {
+ String stdPath = jsr75Path;
+ if (jsr75Path.startsWith("file:///")) {
+ stdPath = stdPath.replace('/', '\\');
+ stdPath = stdPath.substring(8, stdPath.length()).replace('/', '\\');;
+ }
+ return stdPath;
+ }
+
+ public boolean canOpenFile(String path) throws SecurityException {
+ String jsr75Path = convertPathToSpecific(path);
+ try {
+ FileConnection fileConct = (FileConnection) Connector
+ .open(jsr75Path);
+ fileConct.close();
+ } catch (IOException e) {
+ throw new SecurityException(e.getMessage());
+ }
+ return true;
+ }
+
+ public OutputStream getOutStreamFromFile(String path) throws IOException {
+ String jsr75Path = convertPathToSpecific(path);
+
+ OutputStream outStream = null;
+ try{
+ FileConnection fileConct = (FileConnection)Connector.open(jsr75Path);
+ if (!fileConct.exists()) {
+ fileConct.create();
+ }
+ outStream = fileConct.openOutputStream();
+ fileConct.close();
+ }
+ catch(IOException e)
+ {
+ throw e;
+ }
+ catch (Exception e) {
+ throw new IOException(e.getMessage());
+ }
+ return outStream;
+ }
+
+}