All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.snapscript.core.platform.PlatformNameBuilder Maven / Gradle / Ivy

package org.snapscript.core.platform;

import static org.snapscript.core.Reserved.IMPORT_SNAPSCRIPT;

public class PlatformNameBuilder {
   
   private static final String DEFAULT_SUFFIX = "Platform";
   private static final String DEFAULT_QUALIFIER = "platform";
   
   private final String qualifier;
   private final String suffix;
   
   public PlatformNameBuilder() {
      this(DEFAULT_QUALIFIER, DEFAULT_SUFFIX);
   }
   
   public PlatformNameBuilder(String qualifier, String suffix) {
      this.qualifier = qualifier;
      this.suffix = suffix;
   }

   public String createFullName(PlatformType platform) {
      String module = createPackage(platform);
      String name = createClassName(platform);
      
      return module + "." + name;
   }
   
   private String createClassName(PlatformType platform) {
      String name = platform.name();
      String token = name.toLowerCase();
      String prefix = token.substring(1);
      char first = name.charAt(0);
      
      return first + prefix + suffix;
   }
   
   private String createPackage(PlatformType platform) {
      String name = platform.name();
      String token = name.toLowerCase();
      
      return IMPORT_SNAPSCRIPT + qualifier + "." + token;
   }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy