Changeset 4298


Ignore:
Timestamp:
08/07/08 14:55:49 (12 years ago)
Author:
curtis
Message:

Fix compile errors.

Location:
trunk/loci/ome/io
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/loci/ome/io/OMEROReader.java

    r4297 r4298  
    3333import ome.api.RawPixelsStore; 
    3434import ome.model.IObject; 
    35 import ome.model.core.Pixels; 
     35//import ome.model.core.Pixels; 
    3636import ome.parameters.Parameters; 
    3737import ome.system.EventContext; 
     
    119119    int[] zct = FormatTools.getZCTCoords(this, no); 
    120120 
    121     z = new Integer(zct[0]); 
    122     c = new Integer(zct[1]); 
    123     t = new Integer(zct[2]); 
     121    z = zct[0]; 
     122    c = zct[1]; 
     123    t = zct[2]; 
    124124    byte[] plane = raw.getPlane(z, c, t); 
    125125    int len = core.sizeX[0] * core.sizeY[0] * 
     
    155155 
    156156    login = new Login("allison","omero"); 
    157         server = new Server("http://localhost"); 
    158         sf = new ServiceFactory( login); 
    159  
    160         IAdmin admin = sf.getAdminService(); 
     157    server = new Server("http://localhost"); 
     158    sf = new ServiceFactory( login); 
     159 
     160    IAdmin admin = sf.getAdminService(); 
    161161    EventContext ec = admin.getEventContext(); 
    162         idObj = ec.getCurrentUserId(); 
    163  
    164         params = new Parameters().addId(idObj); 
     162    idObj = ec.getCurrentUserId(); 
     163 
     164    params = new Parameters().addId(idObj); 
    165165 
    166166    query = sf.getQueryService(); 
    167167    raw = sf.createRawPixelsStore(); 
    168     raw.setPixelsId((long)idObj); 
     168    raw.setPixelsId(idObj.longValue()); 
    169169    String q = ( "select p from Pixels as p " + 
    170170      "left outer join fetch p.pixelsType as pt " + 
     
    181181    params.addId(idObj); 
    182182 
    183     Pixels results = query.findByQuery(q, params); 
    184     PixelsData pix = new PixelsData(results); 
     183    // NB - Need to reflect references to ome.model.core.Pixels, 
     184    // because J2SE cannot it properly. 
     185    //Pixels results = query.findByQuery(q, params); 
     186    //PixelsData pix = new PixelsData(results); 
     187    ReflectedUniverse r = new ReflectedUniverse(); 
     188    PixelsData pix = null; 
     189    try { 
     190      r.exec("import ome.model.core.Pixels"); 
     191      r.setVar("q", q); 
     192      r.setVar("params", params); 
     193      r.exec("results = query.findByQuery(q, params)"); 
     194      pix = (PixelsData) r.exec("new PixelsData(results)"); 
     195    } 
     196    catch (ReflectException exc) { 
     197      throw new FormatException(exc); 
     198    } 
    185199 
    186200    String ptype = pix.getPixelType(); 
     
    191205    t = pix.getSizeT(); 
    192206 
    193     core.sizeX[0] = ((Integer) x).intValue(); 
    194     core.sizeY[0] = ((Integer) y).intValue(); 
    195     core.sizeZ[0] = ((Integer) z).intValue(); 
    196     core.sizeC[0] = ((Integer) c).intValue(); 
    197     core.sizeT[0] = ((Integer) t).intValue(); 
     207    core.sizeX[0] = x; 
     208    core.sizeY[0] = y; 
     209    core.sizeZ[0] = z; 
     210    core.sizeC[0] = c; 
     211    core.sizeT[0] = t; 
    198212    core.rgb[0] = false; 
    199213    core.littleEndian[0] = false; 
     
    217231    MetadataTools.populatePixels(store, this); 
    218232 
    219     store.setDimensionsPhysicalSizeX(new Float((float) px), 0, 0); 
    220     store.setDimensionsPhysicalSizeY(new Float((float) py), 0, 0); 
    221     store.setDimensionsPhysicalSizeZ(new Float((float) pz), 0, 0); 
    222  
     233    store.setDimensionsPhysicalSizeX(new Float(px), 0, 0); 
     234    store.setDimensionsPhysicalSizeY(new Float(py), 0, 0); 
     235    store.setDimensionsPhysicalSizeZ(new Float(pz), 0, 0); 
    223236  } 
    224237 
  • trunk/loci/ome/io/OMEROWriter.java

    r4297 r4298  
    4646import ome.formats.OMEROMetadataStore; 
    4747import ome.formats.importer.OMEROWrapper; 
    48 import ome.model.core.Pixels; 
    49 import ome.model.meta.Experimenter; 
     48//import ome.model.core.Pixels; 
     49//import ome.model.meta.Experimenter; 
    5050import ome.system.Login; 
    5151import ome.system.Server; 
     
    6363public class OMEROWriter extends FormatWriter { 
    6464 
    65     // -- Constants -- 
    66  
    67     private static final String NO_OMERO_MSG = "OMERO client libraries not " + 
    68       "found.  Please install omero-common.jar and omero-client.jar from " + 
    69       "http://www.loci.wisc.edu/ome/formats.html"; 
    70  
    71     // -- Static fields -- 
    72  
    73     private static boolean noOMERO = false; 
    74  
    75     // -- Fields -- 
    76  
    77     private static String username; 
    78     private static String password; 
    79     private static String serverName; 
    80     private static String port; 
    81  
    82     private static String imageName; 
    83  
    84       /** OMERO raw pixels service */ 
    85       private static RawPixelsStore pservice; 
    86  
    87       /** OMERO query service */ 
    88       private static IQuery         iQuery; 
    89  
    90       /** OMERO update service */ 
    91       private static IUpdate        iUpdate; 
    92  
    93       private static Experimenter    exp; 
    94  
    95       private static Log  log    = (Log) LogFactory.getLog(OMEROWriter.class); 
    96  
    97       /** OMERO service factory; all other services are retrieved from here. */ 
    98       private static ServiceFactory sf; 
    99       private static OMEROMetadataStore store; 
    100  
    101       private OMEROWrapper reader; 
    102  
    103       /** Flag indicating the current session is valid. */ 
    104       private boolean validLogin = false; 
    105  
    106     /** Authentication credentials. */ 
    107     private OMECredentials credentials; 
    108  
    109     /** Image server. */ 
    110     private String omeis; 
    111  
    112     private MetadataRetrieve metadata; 
    113  
    114     // -- Constructor -- 
    115  
    116     /** Constructs a new OMERO writer. */ 
    117     public OMEROWriter() { super("OMERO", "*"); } 
    118  
    119     // -- Internal OMEWriter API methods -- 
     65  // -- Constants -- 
     66 
     67  private static final String NO_OMERO_MSG = 
     68    "OMERO client libraries not found. " + 
     69    "Please install the OMERO-client, OMERO-common, OMERO-importer and " + 
     70    "OMERO-model libraries from " + 
     71    "https://skyking.microscopy.wisc.edu/svn/java/trunk/jar/"; 
     72 
     73  // -- Static fields -- 
     74 
     75  private static boolean noOMERO = false; 
     76 
     77  // -- Fields -- 
     78 
     79  private static String username; 
     80  private static String password; 
     81  private static String serverName; 
     82  private static String port; 
     83 
     84  private static String imageName; 
     85 
     86  /** OMERO raw pixels service */ 
     87  private static RawPixelsStore pservice; 
     88 
     89  /** OMERO query service */ 
     90  private static IQuery iQuery; 
     91 
     92  /** OMERO update service */ 
     93  private static IUpdate iUpdate; 
     94 
     95  //private static Experimenter exp; 
     96 
     97  private static Log log = (Log) LogFactory.getLog(OMEROWriter.class); 
     98 
     99  /** OMERO service factory; all other services are retrieved from here. */ 
     100  private static ServiceFactory sf; 
     101  private static OMEROMetadataStore store; 
     102 
     103  private OMEROWrapper reader; 
     104 
     105  /** Flag indicating the current session is valid. */ 
     106  private boolean validLogin = false; 
     107 
     108  /** Authentication credentials. */ 
     109  private OMECredentials credentials; 
     110 
     111  /** Image server. */ 
     112  private String omeis; 
     113 
     114  private MetadataRetrieve metadata; 
     115 
     116  // -- Constructor -- 
     117 
     118  /** Constructs a new OMERO writer. */ 
     119  public OMEROWriter() { super("OMERO", "*"); } 
     120 
     121  // -- Internal OMEWriter API methods -- 
     122 
     123/** Fires a status update event. */ 
     124  protected void status(String message) { 
     125    status(new StatusEvent(message)); 
     126  } 
    120127 
    121128  /** Fires a status update event. */ 
    122     protected void status(String message) { 
    123       status(new StatusEvent(message)); 
    124     } 
    125  
    126     /** Fires a status update event. */ 
    127     protected void status(int progress, int maximum, String message) { 
    128       status(new StatusEvent(progress, maximum, message)); 
    129     } 
    130  
    131     /** Fires a status update event. */ 
    132     protected void status(StatusEvent e) { 
    133       StatusListener[] l = getStatusListeners(); 
    134       for (int i=0; i<l.length; i++) l[i].statusUpdated(e); 
    135     } 
    136  
    137     public void saveImage(Image image, boolean last) 
    138         throws FormatException, IOException 
    139         { 
    140  
    141           saveImage(image, 0, last, last); 
     129  protected void status(int progress, int maximum, String message) { 
     130    status(new StatusEvent(progress, maximum, message)); 
     131  } 
     132 
     133  /** Fires a status update event. */ 
     134  protected void status(StatusEvent e) { 
     135    StatusListener[] l = getStatusListeners(); 
     136    for (int i=0; i<l.length; i++) l[i].statusUpdated(e); 
     137  } 
     138 
     139  public void saveImage(Image image, boolean last) 
     140    throws FormatException, IOException 
     141  { 
     142    saveImage(image, 0, last, last); 
     143  } 
     144 
     145  /* @see loci.formats.IFormatWriter#saveImage(Image, int, boolean, boolean) */ 
     146  public void saveImage(Image image, int series, boolean lastInSeries, 
     147    boolean last) 
     148    throws FormatException, IOException 
     149  { 
     150 
     151    byte[][] b = ImageTools.getPixelBytes(ImageTools.makeBuffered(image),true); 
     152 
     153    //!metadata.getBigEndian(series).booleanValue()); 
     154    for (int i=0; i<b.length; i++) { 
     155      saveBytes(b[i], series, lastInSeries && (i == b.length - 1), 
     156        last && (i == b.length - 1)); 
     157    } 
     158  } 
     159 
     160  public void saveBytes(byte[] bytes, int series, boolean lastInSeries, 
     161     boolean last) throws FormatException, IOException 
     162  { 
     163    /* 
     164    if (!validLogin) { 
     165     // parse the ID string to get the server, user name and password 
     166 
     167      serverName = currentId.substring(0, currentId.lastIndexOf("?")); 
     168      int ndx = currentId.indexOf("&"); 
     169      if (currentId.indexOf("user") != -1) { 
     170        username = currentId.substring(currentId.lastIndexOf("?") + 6, ndx); 
     171          password = currentId.substring(ndx + 10); 
    142172        } 
    143  
    144         /* @see loci.formats.IFormatWriter#saveImage(Image, int, boolean, boolean) */ 
    145         public void saveImage(Image image, int series, boolean lastInSeries, 
    146           boolean last) 
    147           throws FormatException, IOException 
    148         { 
    149  
    150           byte[][] b = ImageTools.getPixelBytes(ImageTools.makeBuffered(image),true); 
    151  
    152               //!metadata.getBigEndian(series).booleanValue()); 
    153           for (int i=0; i<b.length; i++) { 
    154             saveBytes(b[i], series, lastInSeries && (i == b.length - 1), 
    155              last && (i == b.length - 1)); 
     173      else { 
     174        throw new FormatException("Invalid ID - must be of the form " + 
     175            "<server>?user=<username>&password=<password>"); 
     176      } 
     177    } 
     178    login(); 
     179 
     180    //credentials.imageID = -1; 
     181    MetadataTools.convertMetadata(metadata, store); 
     182    ArrayList<Pixels> pixList = ((ArrayList<Pixels>) store.getRoot()); 
     183    Pixels p = pixList.get(0); 
     184 
     185    //todo fix this, null pointer error 
     186    //p.getImage().setName(imageName); 
     187    //ArrayList<Pixels> pixId = ((ArrayList<Pixels>) store.saveToDB()); 
     188    //store.addPixelsToDataset(arg0, arg1) 
     189 
     190    long timestampIn; 
     191    long timestampOut; 
     192    long timestampDiff; 
     193    long timeInSeconds; 
     194    long hours, minutes, seconds; 
     195    Date date = null; 
     196 
     197    // record initial timestamp and record total running time for the import 
     198    timestampIn = System.currentTimeMillis(); 
     199    date = new Date(timestampIn); 
     200    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
     201    String myDate = formatter.format(date); 
     202 
     203    int i = 1; 
     204    //int bytesPerPixel = getBytesPerPixel(reader.getPixelType()); 
     205    //byte[] arrayBuf = new byte[store.* sizeY * bytesPerPixel]; 
     206    reader.setSeries(series); 
     207 
     208    List<Image> imageList = (List<Image>) store.getRoot(); 
     209    ArrayList<ome.model.core.Pixels> pixelsList = 
     210      (ArrayList<Pixels>) store.saveToDB(); 
     211 
     212    for (Image image : imageList) { 
     213      // store.addImageToDataset(image, dataset); 
     214    } 
     215 
     216    close(); 
     217    */ 
     218  } 
     219 
     220  //methods done so far: 
     221 
     222  public static void login() throws FormatException { 
     223    if (username == null) { 
     224      throw new NullPointerException("username cannot be null"); 
     225    } 
     226    if (password == null) { 
     227      throw new NullPointerException("password cannot be null"); 
     228    } 
     229    if (port == null) throw new NullPointerException("port cannot be null"); 
     230    if (serverName == null) { 
     231      throw new NullPointerException("server cannot be null"); 
     232    } 
     233 
     234     try { 
     235      tryLogin(); 
     236    } 
     237    catch (Exception e) { 
     238      // TODO Auto-generated catch block 
     239      //e.printStackTrace(); 
     240    } 
     241    // notifyObservers(connectionStatus); 
     242  } 
     243 
     244  /** 
     245   * @return 
     246   * @throws Exception 
     247   */ 
     248  private static boolean tryLogin() throws Exception { 
     249    // attempt to log in 
     250    if(!isValidLogin()) return false; 
     251    try { 
     252      Server server = new Server(serverName, Integer.parseInt(port)); 
     253      Login login = new Login(username, password); 
     254      // Instantiate our service factory 
     255      sf = new ServiceFactory(server, login); 
     256      store = new OMEROMetadataStore(sf); 
     257    } 
     258    catch (Throwable t) { 
     259      System.out.println(t.toString()); 
     260      return false; 
     261    } 
     262    System.out.println("login worked!"); 
     263    return true; 
     264  } 
     265 
     266  //create setId method?? 
     267  //calls trylogin() ?? 
     268 
     269  public OMEROMetadataStore getMetadataStore() { 
     270    return store; 
     271  } 
     272 
     273  /* @see loci.formats.IFormatHandler#close() */ 
     274  public void close() throws IOException { 
     275   // TODO 
     276  } 
     277 
     278  public void setMetadata(MetadataRetrieve meta) { 
     279    metadata = meta; 
     280  } 
     281 
     282  public boolean canDoStacks() { return true; } 
     283 
     284  // -- StatusReporter API methods -- 
     285 
     286  /* @see loci.formats.StatusReporter#addStatusListener(StatusListener) */ 
     287  public void addStatusListener(StatusListener l) { 
     288    synchronized (statusListeners) { 
     289      if (!statusListeners.contains(l)) statusListeners.add(l); 
     290    } 
     291  } 
     292 
     293  /* @see loci.formats.StatusReporter#removeStatusListener(StatusListener) */ 
     294  public void removeStatusListener(StatusListener l) { 
     295    synchronized (statusListeners) { 
     296      statusListeners.remove(l); 
     297    } 
     298  } 
     299 
     300  /* @see loci.formats.StatusReporter#getStatusListeners() */ 
     301  public StatusListener[] getStatusListeners() { 
     302    synchronized (statusListeners) { 
     303      StatusListener[] l = new StatusListener[statusListeners.size()]; 
     304      statusListeners.copyInto(l); 
     305      return l; 
     306    } 
     307  } 
     308 
     309  private static boolean isValidLogin() throws Exception { 
     310    System.out.println(username+ password+serverName+ port); 
     311    try { 
     312      store = new OMEROMetadataStore(username, password, serverName, port); 
     313      store.getProjects(); 
     314    } 
     315    //catch (EJBAccessException e) 
     316    catch (Exception e) { 
     317      return false; 
     318    } 
     319    return true; 
     320  } 
     321 
     322  public static void main(String[] args) throws Exception { 
     323    // org.apache.log4j.BasicConfigurator.configure(); 
     324    username="allison"; 
     325    password="omero"; 
     326    serverName="localhost"; 
     327    port="1099"; 
     328 
     329    String id=null; 
     330 
     331    // parse command-line arguments 
     332    boolean doUsage = false; 
     333    if (args.length == 0) doUsage = true; 
     334    for (int i=0; i<args.length; i++) { 
     335      if (args[i].startsWith("-")) { 
     336        // argument is a command line flag 
     337        String param = args[i]; 
     338        try { 
     339          if (param.equalsIgnoreCase("-s")) serverName = args[++i]; 
     340          else if (param.equalsIgnoreCase("-a")) port = args[++i]; 
     341          else if (param.equalsIgnoreCase("-u")) username = args[++i]; 
     342          else if (param.equalsIgnoreCase("-p")) password = args[++i]; 
     343          else if (param.equalsIgnoreCase("-h") || 
     344            param.equalsIgnoreCase("-?")) 
     345          { 
     346            doUsage = true; 
     347          } 
     348          else { 
     349            LogTools.println("Error: unknown flag: "+ param); 
     350            LogTools.println(); 
     351            doUsage = true; 
     352            break; 
    156353          } 
    157354        } 
    158  
    159       public void saveBytes(byte[] bytes, int series, boolean lastInSeries, 
    160          boolean last) 
    161          throws FormatException, IOException 
    162             { 
    163         /* 
    164               if (!validLogin) { 
    165                // parse the ID string to get the server, user name and password 
    166  
    167                 serverName = currentId.substring(0, currentId.lastIndexOf("?")); 
    168                 int ndx = currentId.indexOf("&"); 
    169                 if (currentId.indexOf("user") != -1) { 
    170                   username = currentId.substring(currentId.lastIndexOf("?") + 6, ndx); 
    171                     password = currentId.substring(ndx + 10); 
    172                   } 
    173                 else { 
    174                   throw new FormatException("Invalid ID - must be of the form " + 
    175                       "<server>?user=<username>&password=<password>"); 
    176                 } 
    177               } 
    178               login(); 
    179  
    180             //credentials.imageID = -1; 
    181             MetadataTools.convertMetadata(metadata, store); 
    182           ArrayList<Pixels> pixList = ((ArrayList<Pixels>) store.getRoot()); 
    183           Pixels p = pixList.get(0); 
    184  
    185           //todo fix this, null pointer error 
    186           //p.getImage().setName(imageName); 
    187           //ArrayList<Pixels> pixId = ((ArrayList<Pixels>) store.saveToDB()); 
    188           //store.addPixelsToDataset(arg0, arg1) 
    189  
    190               long timestampIn; 
    191               long timestampOut; 
    192               long timestampDiff; 
    193               long timeInSeconds; 
    194               long hours, minutes, seconds; 
    195               Date date = null; 
    196  
    197             // record initial timestamp and record total running time for the import 
    198               timestampIn = System.currentTimeMillis(); 
    199               date = new Date(timestampIn); 
    200               SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 
    201               String myDate = formatter.format(date); 
    202  
    203              int i = 1; 
    204             // int bytesPerPixel = getBytesPerPixel(reader.getPixelType()); 
    205            //  byte[] arrayBuf = new byte[store.* sizeY * bytesPerPixel]; 
    206             reader.setSeries(series); 
    207  
    208          List<Image> imageList = (List<Image>) store.getRoot(); 
    209            ArrayList<ome.model.core.Pixels> pixelsList = (ArrayList<Pixels>) store.saveToDB(); 
    210  
    211               for (Image image : imageList) 
    212               { 
    213                  // store.addImageToDataset(image, dataset); 
    214               } 
    215  
    216             close(); 
    217       */ 
    218  
     355        catch (ArrayIndexOutOfBoundsException exc) { 
     356          if (i == args.length - 1) { 
     357            LogTools.println("Error: flag " + param + 
     358              " must be followed by a parameter value."); 
     359            LogTools.println(); 
     360            doUsage = true; 
     361            break; 
     362          } 
     363          else throw exc; 
     364        } 
    219365      } 
    220  
    221     //methods done so far: 
    222  
    223     public static void login() throws FormatException 
    224       { 
    225  
    226           if (username == null) throw new NullPointerException("username cannot be null"); 
    227           if (password == null) throw new NullPointerException("password cannot be null"); 
    228           if (port == null) throw new NullPointerException("port cannot be null"); 
    229           if (serverName == null) throw new NullPointerException("server cannot be null"); 
    230  
    231            try { 
    232         tryLogin(); 
    233       } catch (Exception e) { 
    234         // TODO Auto-generated catch block 
    235         //e.printStackTrace(); 
     366      else { 
     367        if (id == null) id = args[i]; 
     368        else { 
     369          LogTools.println("Error: unknown argument: " + args[i]); 
     370          LogTools.println(); 
     371        } 
    236372      } 
    237                          // notifyObservers(connectionStatus); 
     373    } 
     374 
     375    if (id == null) doUsage = true; 
     376    if (doUsage) { 
     377      LogTools.println("Usage: omero [-s server.address] " + 
     378        "[-a port] [-u username] [-p password] filename"); 
     379      LogTools.println(); 
     380      System.exit(1); 
     381    } 
     382 
     383    // ask for information if necessary 
     384    BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); 
     385    if (serverName == null) { 
     386      LogTools.print("Server name? "); 
     387      try { serverName = cin.readLine(); } 
     388      catch (IOException exc) { } 
     389    } 
     390    if (port == null) { 
     391        LogTools.print("Port? "); 
     392        try { port = cin.readLine(); } 
     393        catch (IOException exc) { } 
    238394      } 
    239  
    240       /** 
    241        * @return 
    242        * @throws Exception 
    243        */ 
    244       private static boolean tryLogin() throws Exception 
    245       { 
    246 //         Attempt to log in 
    247         if(!isValidLogin()) 
    248         { 
    249           return false; 
    250         } 
    251           try 
    252           { 
    253               Server server = new Server(serverName, Integer.parseInt(port)); 
    254               Login login = new Login(username, password); 
    255               // Instantiate our service factory 
    256               sf = new ServiceFactory(server, login); 
    257               store = new OMEROMetadataStore(sf); 
    258  
    259           } catch (Throwable t) 
    260           { 
    261             System.out.println(t.toString()); 
    262               return false; 
    263           } 
    264           System.out.println("login worked!"); 
    265           return true; 
    266  
     395    if (username == null) { 
     396      LogTools.print("Username? "); 
     397      try { username = cin.readLine(); } 
     398      catch (IOException exc) { } 
     399    } 
     400    if (password == null) { 
     401      LogTools.print("Password? "); 
     402      try { password = cin.readLine(); } 
     403      catch (IOException exc) { } 
     404    } 
     405    if (serverName == null || username == null || 
     406      password == null || port == null) 
     407    { 
     408      LogTools.println("Error: could not obtain server login information"); 
     409      System.exit(2); 
     410    } 
     411    LogTools.println("Using server " + serverName + " as user " + username); 
     412 
     413    //create image uploader 
     414 
     415    OMEROWriter uploader = new OMEROWriter(); 
     416    uploader.addStatusListener(new StatusListener() { 
     417      public void statusUpdated(StatusEvent e) { 
     418        LogTools.println(e.getStatusMessage()); 
    267419      } 
    268  
    269       //create setId method?? 
    270         //calls trylogin() ?? 
    271  
    272       public OMEROMetadataStore getMetadataStore() 
    273       { 
    274           return store; 
    275       } 
    276  
    277     /* @see loci.formats.IFormatHandler#close() */ 
    278     public void close() throws IOException { 
    279      // TODO 
    280     } 
    281  
    282     public void setMetadata(MetadataRetrieve meta) { 
    283         metadata = meta;} 
    284  
    285     public boolean canDoStacks() { return true; } 
    286  
    287     // -- StatusReporter API methods -- 
    288  
    289     /* @see loci.formats.StatusReporter#addStatusListener(StatusListener) */ 
    290     public void addStatusListener(StatusListener l) { 
    291       synchronized (statusListeners) { 
    292         if (!statusListeners.contains(l)) statusListeners.add(l); 
    293       } 
    294     } 
    295  
    296     /* @see loci.formats.StatusReporter#removeStatusListener(StatusListener) */ 
    297     public void removeStatusListener(StatusListener l) { 
    298       synchronized (statusListeners) { 
    299         statusListeners.remove(l); 
    300       } 
    301     } 
    302  
    303     /* @see loci.formats.StatusReporter#getStatusListeners() */ 
    304     public StatusListener[] getStatusListeners() { 
    305       synchronized (statusListeners) { 
    306         StatusListener[] l = new StatusListener[statusListeners.size()]; 
    307         statusListeners.copyInto(l); 
    308         return l; 
    309       } 
    310     } 
    311  
    312       private static boolean isValidLogin() throws Exception 
    313       { 
    314         System.out.println(username+ password+serverName+ port); 
    315           try 
    316           { 
    317               store = new OMEROMetadataStore(username, password, serverName, port); 
    318               store.getProjects(); 
    319  
    320           //} catch (EJBAccessException e) 
    321           } catch (Exception e) 
    322           { 
    323               return false; 
    324           } 
    325  
    326           return true; 
    327       } 
    328  
    329    public static void main(String[] args) throws Exception { 
    330      // org.apache.log4j.BasicConfigurator.configure(); 
    331         username="allison"; 
    332         password="omero"; 
    333         serverName="localhost"; 
    334         port="1099"; 
    335  
    336         String id=null; 
    337  
    338         // parse command-line arguments 
    339         boolean doUsage = false; 
    340         if (args.length == 0) doUsage = true; 
    341         for (int i=0; i<args.length; i++) { 
    342           if (args[i].startsWith("-")) { 
    343             // argument is a command line flag 
    344             String param = args[i]; 
    345             try { 
    346               if (param.equalsIgnoreCase("-s")) serverName = args[++i]; 
    347               else if (param.equalsIgnoreCase("-a")) port = args[++i]; 
    348               else if (param.equalsIgnoreCase("-u")) username = args[++i]; 
    349               else if (param.equalsIgnoreCase("-p")) password = args[++i]; 
    350               else if (param.equalsIgnoreCase("-h") || param.equalsIgnoreCase("-?")) 
    351               { 
    352                 doUsage = true; 
    353               } 
    354               else { 
    355                 LogTools.println("Error: unknown flag: "+ param); 
    356                 LogTools.println(); 
    357                 doUsage = true; 
    358                 break; 
    359               } 
    360             } 
    361             catch (ArrayIndexOutOfBoundsException exc) { 
    362               if (i == args.length - 1) { 
    363                 LogTools.println("Error: flag " + param + 
    364                   " must be followed by a parameter value."); 
    365                 LogTools.println(); 
    366                 doUsage = true; 
    367                 break; 
    368               } 
    369               else throw exc; 
    370             } 
    371           } 
    372           else { 
    373             if (id == null) id = args[i]; 
    374             else { 
    375               LogTools.println("Error: unknown argument: " + args[i]); 
    376               LogTools.println(); 
    377             } 
    378           } 
    379         } 
    380  
    381         if (id == null) doUsage = true; 
    382         if (doUsage) { 
    383           LogTools.println("Usage: omero [-s server.address] " + 
    384             "[-a port] [-u username] [-p password] filename"); 
    385           LogTools.println(); 
    386           System.exit(1); 
    387         } 
    388  
    389 //     ask for information if necessary 
    390         BufferedReader cin = new BufferedReader(new InputStreamReader(System.in)); 
    391         if (serverName == null) { 
    392           LogTools.print("Server name? "); 
    393           try { serverName = cin.readLine(); } 
    394           catch (IOException exc) { } 
    395         } 
    396         if (port == null) { 
    397             LogTools.print("Port? "); 
    398             try { port = cin.readLine(); } 
    399             catch (IOException exc) { } 
    400           } 
    401         if (username == null) { 
    402           LogTools.print("Username? "); 
    403           try { username = cin.readLine(); } 
    404           catch (IOException exc) { } 
    405         } 
    406         if (password == null) { 
    407           LogTools.print("Password? "); 
    408           try { password = cin.readLine(); } 
    409           catch (IOException exc) { } 
    410         } 
    411         if (serverName == null || username == null || password == null || port == null ) { 
    412           LogTools.println("Error: could not obtain server login information"); 
    413           System.exit(2); 
    414         } 
    415         LogTools.println("Using server " + serverName + " as user " + username); 
    416  
    417       //create image uploader 
    418  
    419       OMEROWriter uploader = new OMEROWriter(); 
    420       uploader.addStatusListener(new StatusListener() { 
    421       public void statusUpdated(StatusEvent e) { 
    422        LogTools.println(e.getStatusMessage()); 
    423        } 
    424       }); 
    425  
    426       uploader.setId(serverName + "?user=" + username + "&password=" + password); 
    427  
    428       FileStitcher reader = new FileStitcher(); 
    429       //reader.setMetadataStore(MetadataTools.createOMEXMLMetadata()); 
    430       //reader.setMetadataStore(new OMEXMLMetadata()); 
    431  
    432       reader.setId(id); 
    433       //reader.setMetadataStore(store); 
    434       uploader.setMetadata((MetadataRetrieve) reader.getMetadataStore()); 
    435       for (int i=0; i<reader.getImageCount(); i++) { 
    436  
    437           uploader.saveImage(reader.openImage(i), i == reader.getImageCount()-1 ); 
    438  
    439         } 
    440         reader.close(); 
    441         uploader.close(); 
    442  
    443  } 
     420    }); 
     421 
     422    uploader.setId(serverName + 
     423      "?user=" + username + "&password=" + password); 
     424 
     425    FileStitcher reader = new FileStitcher(); 
     426    //reader.setMetadataStore(MetadataTools.createOMEXMLMetadata()); 
     427    //reader.setMetadataStore(new OMEXMLMetadata()); 
     428 
     429    reader.setId(id); 
     430    //reader.setMetadataStore(store); 
     431    uploader.setMetadata((MetadataRetrieve) reader.getMetadataStore()); 
     432    for (int i=0; i<reader.getImageCount(); i++) { 
     433      uploader.saveImage(reader.openImage(i), i == reader.getImageCount()-1); 
     434    } 
     435    reader.close(); 
     436    uploader.close(); 
     437  } 
     438 
    444439} 
Note: See TracChangeset for help on using the changeset viewer.