/* * Copyright (c) 2012 Diamond Light Source Ltd. * * 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 */ package uk.ac.diamond.scisoft.analysis.io; import java.io.File; import org.eclipse.dawnsci.analysis.api.diffraction.DetectorProperties; import org.eclipse.dawnsci.analysis.api.diffraction.DiffractionCrystalEnvironment; import org.eclipse.dawnsci.analysis.api.metadata.IDiffractionMetadata; /** * <b>Do not use</b> this where metadata can be accessible from Jython because the anonymous class adapter pattern * is generally not serializable (unless the host class is serializable and has a null constructor) */ public class DiffractionMetaDataAdapter extends ExtendedMetadataAdapter implements IDiffractionMetadata { private DiffractionCrystalEnvironment originalEnv, clonedEnv; private DetectorProperties originalProp, clonedProp; public DiffractionMetaDataAdapter() { super(); } @Override public void initialize(String filename) { super.initialize(filename == null ? null : new File(filename)); } @Override public void initialize(String filename, DetectorProperties props, DiffractionCrystalEnvironment env) { initialize(filename); } @Override public DiffractionCrystalEnvironment getDiffractionCrystalEnvironment() { return clonedEnv; } @Override public DetectorProperties getDetector2DProperties() { return clonedProp; } @Override public IDiffractionMetadata clone(){ DiffractionMetaDataAdapter ad = new DiffractionMetaDataAdapter(); if (getDetector2DProperties()!=null) ad.clonedProp = getDetector2DProperties().clone(); if (getOriginalDetector2DProperties()!=null) ad.originalProp = getOriginalDetector2DProperties(); if (getDiffractionCrystalEnvironment()!=null)ad.clonedEnv = getDiffractionCrystalEnvironment().clone(); if (getOriginalDiffractionCrystalEnvironment()!=null)ad.originalEnv = getOriginalDiffractionCrystalEnvironment(); return ad; } @Override public DetectorProperties getOriginalDetector2DProperties() { return originalProp; } @Override public DiffractionCrystalEnvironment getOriginalDiffractionCrystalEnvironment() { return originalEnv; } }