Example usage for com.google.gwt.core.ext ConfigurationProperty getName

List of usage examples for com.google.gwt.core.ext ConfigurationProperty getName

Introduction

In this page you can find the example usage for com.google.gwt.core.ext ConfigurationProperty getName.

Prototype

String getName();

Source Link

Document

The name of the property.

Usage

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);
}