001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.data.projection.proj; 003 004/** 005 * Proj Factory that creates instances from a given class. 006 */ 007public class ClassProjFactory implements ProjFactory { 008 009 private final Class<? extends Proj> projClass; 010 011 /** 012 * Constructs a new {@code ClassProjFactory}. 013 * @param projClass projection class 014 */ 015 public ClassProjFactory(Class<? extends Proj> projClass) { 016 this.projClass = projClass; 017 } 018 019 @Override 020 public Proj createInstance() { 021 Proj proj = null; 022 try { 023 proj = projClass.getConstructor().newInstance(); 024 } catch (ReflectiveOperationException e) { 025 throw new RuntimeException(e); 026 } 027 return proj; 028 } 029}