/* * ALMA - Atacama Large Millimiter Array * (c) European Southern Observatory, 2005 * Copyright by ESO (in the framework of the ALMA collaboration), * All rights reserved * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * MA 02111-1307 USA */ package alma.acs.container.archive; import java.util.logging.Logger; import org.apache.commons.lang.StringUtils; import alma.ACS.ComponentStates; import alma.acs.util.IsoDateFormat; import alma.archive.range.IdentifierRange; import alma.archive.range.IdentifierRangeEntityT; import alma.archive.range.RangeT; import alma.xmlstore.IdentifierJ; import alma.xmlstore.IdentifierPackage.NotAvailable; import alma.xmlstore.IdentifierPackage.NotFound; /** * @author hsommer * */ public class IdentifierJMock implements IdentifierJ { private final Logger logger; private final long archiveid; private long rangeid; private final int archiveIdLength = 2; public IdentifierJMock(Logger logger, long archiveid, long rangeid) { this.logger = logger; this.archiveid = archiveid; this.rangeid = rangeid; } /* (non-Javadoc) * @see alma.xmlstore.IdentifierJ#getExistingRange(java.lang.String, java.lang.String) */ public IdentifierRange getExistingRange(String identifier, String user) throws NotFound { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see alma.xmlstore.IdentifierJ#getIdNamespace() */ public String getIdNamespace() throws NotAvailable { // TODO Auto-generated method stub return null; } /** * This is the only method that's currently implemented * @see alma.xmlstore.IdentifierJ#getNewRange() */ public IdentifierRange getNewRange() throws NotAvailable { //Create the entity information IdentifierRangeEntityT entityt = new IdentifierRangeEntityT(); //The id of the range is the 0 document id in that range. entityt.setEntityId(createUid()); IdentifierRange range = new IdentifierRange(); range.setIdentifierRangeEntity(entityt); //set the time stamp String ts = IsoDateFormat.formatCurrentDate(); // todo: pass in time externally? range.setCreatedTimeStamp(ts); range.setIsLocked(false); String archiveIdString = Long.toHexString(archiveid); archiveIdString = "X"+StringUtils.leftPad(archiveIdString,archiveIdLength, '0'); range.setArchiveID(archiveIdString); RangeT ranget = new RangeT(); ranget.setRangeID(Long.toHexString(rangeid)); ranget.setBaseDocumentID("1"); range.setRange(ranget); rangeid++; // this.setRangeId(rangeid); return range; } /* (non-Javadoc) * @see alma.xmlstore.IdentifierJ#getNewRestrictedRange(int, java.lang.String) */ public IdentifierRange getNewRestrictedRange(int number, String user) throws NotAvailable { IdentifierRange range = this.getNewRange(); RangeT ranget = range.getRange(); ranget.setMaxDocumentID(Integer.toHexString(number)); return range; } /* (non-Javadoc) * @see alma.xmlstore.IdentifierJ#getUIDs(short) */ public String[] getUIDs(short number) throws NotAvailable { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see alma.ACS.ACSComponentOperations#componentState() */ public ComponentStates componentState() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see alma.ACS.ACSComponentOperations#name() */ public String name() { // TODO Auto-generated method stub return null; } private String createUid() { String uid = "uid://X" + StringUtils.leftPad(Long.toHexString(archiveid),archiveIdLength, '0') + "/X" + Long.toHexString(rangeid) +"/X0"; return uid; } public boolean checkUIDsyntax(String identifier) { // TODO Auto-generated method stub return false; } }