/** * Make a copy of the reciever, setting the loadStrategy to null */ public ArchiveOptions cloneWith(LoadStrategy aLoadStrategy) { try { ArchiveOptions result = (ArchiveOptions) super.clone(); result.setLoadStrategy(aLoadStrategy); result.readOnlyFlags = null; return result; } catch (CloneNotSupportedException ignore) { return null; } }
protected ArchiveOptions defaultOptions(LoadStrategy aLoadStrategy) { ArchiveOptions options = new ArchiveOptions(); options.setLoadStrategy(aLoadStrategy); return options; }
public void initializeNewArchive(Archive anArchive, String uri, ArchiveOptions options) { if (options.getLoadStrategy() == null) { try { options.setLoadStrategy(createEmptyLoadStrategy()); } catch (Exception ex) { Logger.getLogger().logError(ex); } } anArchive.setURI(uri); anArchive.setSize(0); anArchive.setLastModified(System.currentTimeMillis()); anArchive.setDirectoryEntry(false); anArchive.setLoadStrategy(options.getLoadStrategy()); anArchive.setOptions(options); }
public synchronized IReferenceCountedArchive openArchive(EnterpriseBinaryComponentHelper helper) throws OpenFailureException { ArchiveOptions options = helper.getArchiveOptions(); String archiveURI = helper.getArchiveURI(); options.setLoadStrategy(createBinaryLoadStrategy(helper)); Archive anArchive = CommonarchiveFactory.eINSTANCE.primOpenArchive(options, archiveURI); ArchiveTypeDiscriminator discriminator = helper.getDiscriminator(); if (!discriminator.canImport(anArchive)) { anArchive.close(); throw new OpenFailureException(discriminator.getUnableToOpenMessage()); } IReferenceCountedArchive specificArchive = (IReferenceCountedArchive) discriminator.openArchive(anArchive); specificArchive.setEnterpriseBinaryComponentHelper(helper); specificArchive.initializeAfterOpen(); specificArchive.access(); componentsToArchives.put(helper.getComponent(), specificArchive); return specificArchive; } }
/** * open the archive, setting up the appropriate strategies, using the loadStrategy passed in; * URI still necessary so the archive has a name, but it will not be used for io. */ public Archive primOpenArchive(ArchiveOptions options, String uri) throws OpenFailureException { if (options.getLoadStrategy() == null) { try { options.setLoadStrategy(createLoadStrategy(uri)); } catch (IOException ex) { throw new OpenFailureException(CommonArchiveResourceHandler.getString(CommonArchiveResourceHandler.could_not_open_EXC_, (new Object[]{uri})), ex); // = "Could not open " } } Archive anArchive = createArchive(); anArchive.setURI(uri); anArchive.setOriginalURI(uri); anArchive.setLoadStrategy(options.getLoadStrategy()); anArchive.setOptions(options); ArchiveTypeDiscriminatorRegistry.getInstance().contributeTypes(anArchive); return anArchive; }