001package org.dcm4che3.conf.core.context;
002
003import org.dcm4che3.conf.core.api.TypeSafeConfiguration;
004import org.dcm4che3.conf.core.api.internal.BeanVitalizer;
005
006/**
007 * @author rawmahn
008 */
009public class ContextFactory {
010
011    private final TypeSafeConfiguration typeSafeConfiguration;
012    private final BeanVitalizer vitalizer;
013
014    public ContextFactory(TypeSafeConfiguration typeSafeConfiguration) {
015        this.typeSafeConfiguration = typeSafeConfiguration;
016        this.vitalizer = null;
017    }
018    public ContextFactory(BeanVitalizer vitalizer) {
019        this.typeSafeConfiguration = null;
020        this.vitalizer = vitalizer;
021    }
022
023    public LoadingContext newLoadingContext() {
024        if (typeSafeConfiguration == null)
025            return new LoadingContext(vitalizer);
026        else
027            return new LoadingContext(typeSafeConfiguration);
028    }
029
030    public SavingContext newSavingContext() {
031        if (typeSafeConfiguration == null) {
032            return new SavingContext(vitalizer);
033        } else
034            return new SavingContext(typeSafeConfiguration);
035    }
036
037    public ProcessingContext newProcessingContext() {
038        if (typeSafeConfiguration==null)
039            return new ProcessingContext(vitalizer);
040        else
041            return new ProcessingContext(typeSafeConfiguration);
042    }
043
044}