List of usage examples for com.google.gwt.core.ext ConfigurationProperty getName
String getName();
From source file:com.bramosystems.oss.player.core.rebind.PlayerManagerGenerator.java
License:Apache License
/** * @param logger Logger object/*from w w w.java2 s . c o m*/ * @param context Generator context */ private void generateClass(TreeLogger logger, GeneratorContext context) throws NotFoundException, BadPropertyValueException, UnableToCompleteException, IOException { // get print writer that receives the source code PrintWriter printWriter = context.tryCreate(logger, packageName, className); // print writer if null, source code has ALREADY been generated, return if (printWriter == null) { return; } // build plugin mime types ... ConfigurationProperty mimeFile = context.getPropertyOracle() .getConfigurationProperty("bstplayer.media.mimeTypes"); String val = mimeFile.getValues().get(0); if (val == null) { logger.log(TreeLogger.Type.INFO, "'" + mimeFile.getName() + "' configuration property not set! Using defaults"); parseMimeFile(DEFAULT_MIME_TYPES_FILE); } else { logger.log(TreeLogger.Type.INFO, "'" + mimeFile.getName() + "' set! Using '" + val + "'"); parseMimeFile(val); } collatePlayers(context.getTypeOracle()); // init composer, set class properties, create source writer ClassSourceFileComposerFactory composer = new ClassSourceFileComposerFactory(packageName, className); composer.setSuperclass("PlayerManager"); composer.addImport("com.google.gwt.core.client.GWT"); composer.addImport("com.bramosystems.oss.player.core.client.spi.PlayerProviderFactory"); composer.addImport("com.bramosystems.oss.player.core.client.impl.CallbackUtility"); composer.addImport("com.bramosystems.oss.player.core.client.spi.ConfigurationContext"); composer.addImport("com.bramosystems.oss.player.core.client.*"); composer.addImport("java.util.*"); SourceWriter sourceWriter = composer.createSourceWriter(context, printWriter); sourceWriter.println( "private HashMap<String, HashMap<String, PlayerInfo>> pInfos = new HashMap<String, HashMap<String, PlayerInfo>>();"); // collate widget factories & create static holders ... Iterator<String> fact = pMap.keySet().iterator(); while (fact.hasNext()) { String provClass = fact.next(); sourceWriter.println("private static PlayerProviderFactory pwf_" + escapeProviderName(pMap.get(provClass).name) + " = GWT.create(" + provClass + ".class);"); } sourceWriter.println(); Pattern ptrn = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)"); // generate constructor source code sourceWriter.println("public " + className + "() { "); sourceWriter.indent(); // init widget factories ... fact = pMap.keySet().iterator(); while (fact.hasNext()) { String provClass = fact.next(); String provName = escapeProviderName(pMap.get(provClass).name); sourceWriter.println( "pwf_" + provName + ".init(new ConfigurationContext(CallbackUtility.initCallbackHandlers(\"" + provName + "\"), \"bstplayer.handlers." + provName + "\"));"); } sourceWriter.println(); // init providers ... fact = pMap.keySet().iterator(); while (fact.hasNext()) { _provider pvd = pMap.get(fact.next()); sourceWriter.println("pInfos.put(\"" + pvd.name + "\", new HashMap<String, PlayerInfo>());"); Iterator<_player> pns = pvd.players.iterator(); while (pns.hasNext()) { _player ply = pns.next(); boolean ps = false, ms = false; JClassType ints[] = ply.interfaces; for (int j = 0; j < ints.length; j++) { if (ints[j].getQualifiedSourceName().equals(MatrixSupport.class.getName())) { ms = true; } else if (ints[j].getQualifiedSourceName().equals(PlaylistSupport.class.getName())) { ps = true; } } Matcher m = ptrn.matcher(ply.minPluginVer); if (m.matches()) { sourceWriter.println("pInfos.get(\"" + pvd.name + "\").put(\"" + ply.name + "\", new PlayerInfo(\"" + pvd.name + "\",\"" + ply.name + "\"," + "PluginVersion.get(" + Integer.parseInt(m.group(1)) + "," + Integer.parseInt(m.group(2)) + "," + Integer.parseInt(m.group(3)) + ")," + ps + "," + ms + "));"); } else { logger.log(TreeLogger.Type.WARN, "Min"); } } } sourceWriter.outdent(); sourceWriter.println("}"); // end constructor source generation sourceWriter.println(); // implement get provider names ... sourceWriter.println("@Override"); sourceWriter.println("public Set<String> getProviders(){"); sourceWriter.indent(); sourceWriter.println("return new TreeSet<String>(pInfos.keySet());"); sourceWriter.outdent(); sourceWriter.println("}"); sourceWriter.println(); // implement get player names by provider ... sourceWriter.println("@Override"); sourceWriter.println("public Set<String> getPlayerNames(String providerName) {"); sourceWriter.indent(); sourceWriter.println("if(!pInfos.containsKey(providerName))"); sourceWriter.println("throw new IllegalArgumentException(\"Unknown player provider - \" + providerName);"); sourceWriter.println("return new TreeSet<String>(pInfos.get(providerName).keySet());"); sourceWriter.outdent(); sourceWriter.println("}"); sourceWriter.println(); // implement get player infos ... sourceWriter.println("@Override"); sourceWriter.println("public PlayerInfo getPlayerInfo(String providerName, String playerName) {"); sourceWriter.indent(); sourceWriter.println("if(!pInfos.containsKey(providerName)) {"); sourceWriter.println("throw new IllegalArgumentException(\"Unknown player provider - \" + providerName);}"); sourceWriter.println("if(providerName.equals(\"api\")){"); sourceWriter.println("return getApiPlayerInfoForPlugin(playerName);}"); sourceWriter.println("else if(!pInfos.get(providerName).containsKey(playerName)){"); sourceWriter.println("throw new IllegalArgumentException(\"Unknown player name - \" + playerName);}"); sourceWriter.println("return pInfos.get(providerName).get(playerName);"); sourceWriter.outdent(); sourceWriter.println("}"); sourceWriter.println(); // implement get widget factory with defered binding on demand .... sourceWriter.println("@Override"); sourceWriter.println("public PlayerProviderFactory getProviderFactory(String provider) {"); sourceWriter.indent(); sourceWriter.println("PlayerProviderFactory wf = null;"); boolean firstRun = true; Iterator<_provider> provs = pMap.values().iterator(); while (provs.hasNext()) { _provider prov = provs.next(); if (firstRun) { sourceWriter.println("if(\"" + prov.name + "\".equals(provider)) {"); } else { sourceWriter.println("else if(\"" + prov.name + "\".equals(provider)) {"); } sourceWriter.indent(); sourceWriter.println("wf = pwf_" + escapeProviderName(prov.name) + ";"); sourceWriter.outdent(); sourceWriter.println("}"); firstRun = false; } sourceWriter.println("return wf;"); sourceWriter.outdent(); sourceWriter.println("}"); sourceWriter.println(); // implement mimeTypes .... sourceWriter.println("@Override"); sourceWriter.println("protected void initMimeTypes(HashMap<String, String> mimeTypes) {"); sourceWriter.indent(); Iterator<String> mimeKeys = mimeMap.keySet().iterator(); while (mimeKeys.hasNext()) { String mime = mimeKeys.next(); sourceWriter.println("mimeTypes.put(\"" + mime + "\",\"" + mimeMap.get(mime) + "\");"); } sourceWriter.outdent(); sourceWriter.println("}"); sourceWriter.println(); // close generated class sourceWriter.outdent(); sourceWriter.println("}"); // commit generated class context.commit(logger, printWriter); }