Example usage for com.google.common.collect BiMap put

List of usage examples for com.google.common.collect BiMap put

Introduction

In this page you can find the example usage for com.google.common.collect BiMap put.

Prototype

@Override
@Nullable
V put(@Nullable K key, @Nullable V value);

Source Link

Usage

From source file:org.bimserver.ifc.IfcModel.java

public void fixOids() {
    BiMap<Long, IdEObject> temp = HashBiMap.create();
    for (IdEObject object : objects.values()) {
        temp.put(object.getOid(), object);
    }/*from  www.  j  a  va  2 s  .co m*/
    objects = temp;
}

From source file:io.pcp.parfait.dxm.StringParsingIdentifierSourceSet.java

private String parseAllocation(final BiMap<String, Integer> allocations, int lineNumber, String currentLine) {
    String[] elements = currentLine.trim().split("\\s+");
    if (elements.length != 2) {
        throw new IllegalArgumentException("Error parsing line " + lineNumber
                + " of input; should have two columns in format <name><whitespace><id>");
    }//from  w ww.  jav  a 2s.c o  m
    String metricName = elements[0];
    Integer id = null;
    try {
        id = Integer.valueOf(elements[1]);
    } catch (NumberFormatException e) {
        throw new IllegalArgumentException("Error parsing line " + lineNumber + " of input; identifier "
                + metricName + " has unparseable ID string '" + elements[1] + "'");
    }
    if (allocations.containsValue(id)) {
        throw new IllegalArgumentException(
                "Error parsing line " + lineNumber + " of input; identifier " + metricName + " has ID " + id
                        + " which is already in use for identifier " + allocations.inverse().get(id));
    }
    allocations.put(metricName, id);
    return metricName;
}

From source file:net.minecraftforge.fml.common.Loader.java

/**
 * Sort the mods into a sorted list, using dependency information from the
 * containers. The sorting is performed using a {@link TopologicalSort}
 * based on the pre- and post- dependency information provided by the mods.
 *///from   w  w w  . j av a2 s .  c  om
private void sortModList() {
    FMLLog.finer("Verifying mod requirements are satisfied");
    try {
        BiMap<String, ArtifactVersion> modVersions = HashBiMap.create();
        for (ModContainer mod : Iterables.concat(getActiveModList(), ModAPIManager.INSTANCE.getAPIList())) {
            modVersions.put(mod.getModId(), mod.getProcessedVersion());
        }

        ArrayListMultimap<String, String> reqList = ArrayListMultimap.create();
        for (ModContainer mod : getActiveModList()) {
            if (!mod.acceptableMinecraftVersionRange().containsVersion(minecraft.getProcessedVersion())) {
                FMLLog.severe(
                        "The mod %s does not wish to run in Minecraft version %s. You will have to remove it to play.",
                        mod.getModId(), getMCVersionString());
                throw new WrongMinecraftVersionException(mod);
            }
            Map<String, ArtifactVersion> names = Maps.uniqueIndex(mod.getRequirements(),
                    new ArtifactVersionNameFunction());
            Set<ArtifactVersion> versionMissingMods = Sets.newHashSet();

            Set<String> missingMods = Sets.difference(names.keySet(), modVersions.keySet());
            if (!missingMods.isEmpty()) {
                FMLLog.severe("The mod %s (%s) requires mods %s to be available", mod.getModId(), mod.getName(),
                        missingMods);
                for (String modid : missingMods) {
                    versionMissingMods.add(names.get(modid));
                }
                throw new MissingModsException(versionMissingMods, mod.getModId(), mod.getName());
            }
            reqList.putAll(mod.getModId(), names.keySet());
            ImmutableList<ArtifactVersion> allDeps = ImmutableList.<ArtifactVersion>builder()
                    .addAll(mod.getDependants()).addAll(mod.getDependencies()).build();
            for (ArtifactVersion v : allDeps) {
                if (modVersions.containsKey(v.getLabel())) {
                    if (!v.containsVersion(modVersions.get(v.getLabel()))) {
                        versionMissingMods.add(v);
                    }
                }
            }
            if (!versionMissingMods.isEmpty()) {
                FMLLog.severe("The mod %s (%s) requires mod versions %s to be available", mod.getModId(),
                        mod.getName(), versionMissingMods);
                throw new MissingModsException(versionMissingMods, mod.getModId(), mod.getName());
            }
        }

        FMLLog.finer("All mod requirements are satisfied");

        reverseDependencies = Multimaps.invertFrom(reqList, ArrayListMultimap.<String, String>create());
        ModSorter sorter = new ModSorter(getActiveModList(), namedMods);

        try {
            FMLLog.finer("Sorting mods into an ordered list");
            List<ModContainer> sortedMods = sorter.sort();
            // Reset active list to the sorted list
            modController.getActiveModList().clear();
            modController.getActiveModList().addAll(sortedMods);
            // And inject the sorted list into the overall list
            mods.removeAll(sortedMods);
            sortedMods.addAll(mods);
            mods = sortedMods;
            FMLLog.finer("Mod sorting completed successfully");
        } catch (ModSortingException sortException) {
            FMLLog.severe(
                    "A dependency cycle was detected in the input mod set so an ordering cannot be determined");
            SortingExceptionData<ModContainer> exceptionData = sortException.getExceptionData();
            FMLLog.severe("The first mod in the cycle is %s", exceptionData.getFirstBadNode());
            FMLLog.severe("The mod cycle involves");
            for (ModContainer mc : exceptionData.getVisitedNodes()) {
                FMLLog.severe("%s : before: %s, after: %s", mc.toString(), mc.getDependants(),
                        mc.getDependencies());
            }
            FMLLog.log(Level.ERROR, sortException, "The full error");
            throw sortException;
        }
    } finally {
        FMLLog.fine("Mod sorting data");
        int unprintedMods = mods.size();
        for (ModContainer mod : getActiveModList()) {
            if (!mod.isImmutable()) {
                FMLLog.fine("\t%s(%s:%s): %s (%s)", mod.getModId(), mod.getName(), mod.getVersion(),
                        mod.getSource().getName(), mod.getSortingRules());
                unprintedMods--;
            }
        }
        if (unprintedMods == mods.size()) {
            FMLLog.fine("No user mods found to sort");
        }
    }

}

From source file:org.granitemc.granite.GraniteStartupThread.java

public void loadBlocks() {
    Class<?> blockClass = Mappings.getClass("Block");

    try {//from  w ww .j  a v  a2s . c o m
        Field nameField = Mappings.getField(blockClass, "blockWithMetadata");
        nameField.setAccessible(true);

        Field nameMapField = BlockTypes.class.getDeclaredField("nameMap");
        nameMapField.setAccessible(true);
        BiMap<String, BlockType> nameMap = HashBiMap.create();
        nameMapField.set(null, nameMap);

        Field idMapField = BlockTypes.class.getDeclaredField("idMap");
        idMapField.setAccessible(true);
        BiMap<Integer, BlockType> idMap = HashBiMap.create();
        idMapField.set(null, idMap);

        for (Object block : (Iterable) Mappings.getField(blockClass, "blockRegistry").get(null)) {
            String fullName = nameField.get(block).toString();
            String name = fullName.split(":")[1].split("\\[")[0].split(",")[0];

            Object metadata = Mappings.getField(blockClass, "blockMetadata").get(block);
            Collection variants = (Collection) Mappings.getField(metadata.getClass(), "variants").get(metadata);

            GraniteBlockType type = (GraniteBlockType) MinecraftUtils.wrap(variants.iterator().next());
            int id = (int) Mappings.invokeStatic("Block", "getIdFromBlock", block);
            nameMap.put(name, type);
            idMap.put(id, type);

            BlockTypes.class.getDeclaredField(name).set(null, type);
        }
    } catch (IllegalAccessException | NoSuchFieldException e) {
        e.printStackTrace();
    }
}

From source file:de.keyle.knbte.Gui.java

public Gui(JFrame skilltreeCreatorFrame, File argFile) {
    if (argFile != null) {
        openFile(argFile);/* www  .  j  a  va 2 s .  co  m*/
    }

    JMenuBar menuBar = new JMenuBar();

    JMenu menuFile = new JMenu("File");
    menuBar.add(menuFile);

    JMenuItem newMenuItem = new JMenuItem("New", NEW_ICON);
    newMenuItem.setAccelerator(KeyStroke.getKeyStroke('N', KeyEvent.CTRL_DOWN_MASK));
    menuFile.add(newMenuItem);
    JMenuItem openMenuItem = new JMenuItem("Open...", OPEN_ICON);
    openMenuItem.setAccelerator(KeyStroke.getKeyStroke('O', KeyEvent.CTRL_DOWN_MASK));
    menuFile.add(openMenuItem);
    JMenuItem saveMenuItem = new JMenuItem("Save...", SAVE_ICON);
    saveMenuItem.setAccelerator(KeyStroke.getKeyStroke('S', KeyEvent.CTRL_DOWN_MASK));
    menuFile.add(saveMenuItem);
    JMenuItem saveAsMenuItem = new JMenuItem("Save as...", SAVE_AS_ICON);
    saveAsMenuItem
            .setAccelerator(KeyStroke.getKeyStroke('S', KeyEvent.CTRL_DOWN_MASK + KeyEvent.ALT_DOWN_MASK));
    menuFile.add(saveAsMenuItem);
    menuFile.add(new JSeparator());
    JMenuItem exitMenuItem = new JMenuItem("Exit", EXIT_ICON);
    exitMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, KeyEvent.ALT_DOWN_MASK));
    menuFile.add(exitMenuItem);

    skilltreeCreatorFrame.setJMenuBar(menuBar);

    listAddButtonMenu = new JPopupMenu();

    JMenuItem byteMenuItem = new JMenuItem("Byte", BYTE_ICON);
    listAddButtonMenu.add(byteMenuItem);

    JMenuItem shortMenuItem = new JMenuItem("Short", SHORT_ICON);
    listAddButtonMenu.add(shortMenuItem);

    JMenuItem intMenuItem = new JMenuItem("Integer", INT_ICON);
    listAddButtonMenu.add(intMenuItem);

    JMenuItem longMenuItem = new JMenuItem("Long", LONG_ICON);
    listAddButtonMenu.add(longMenuItem);

    JMenuItem floatMenuItem = new JMenuItem("Float", FLOAT_ICON);
    listAddButtonMenu.add(floatMenuItem);

    JMenuItem doubleMenuItem = new JMenuItem("Double", DOUBLE_ICON);
    listAddButtonMenu.add(doubleMenuItem);

    JMenuItem byteArrayMenuItem = new JMenuItem("Byte Array", BYTE_ARRAY_ICON);
    listAddButtonMenu.add(byteArrayMenuItem);

    JMenuItem intArrayMenuItem = new JMenuItem("Integer Array", INT_ARRAY_ICON);
    listAddButtonMenu.add(intArrayMenuItem);

    JMenuItem stringMenuItem = new JMenuItem("String", STRING_ICON);
    listAddButtonMenu.add(stringMenuItem);

    JMenuItem compoundMenuItem = new JMenuItem("Compound", COMPOUND_ICON);
    listAddButtonMenu.add(compoundMenuItem);

    JMenuItem listMenuItem = new JMenuItem("List", LIST_ICON);
    listAddButtonMenu.add(listMenuItem);

    ActionListener saveListener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            File fileToSaveTo = null;
            if (openedFile != null) {
                fileToSaveTo = openedFile;
            } else {
                int returnVal = fc.showSaveDialog(openFileButton);

                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    fileToSaveTo = fc.getSelectedFile();
                } else if (returnVal == JFileChooser.CANCEL_OPTION) {
                    return;
                }
            }
            if (fileToSaveTo != null) {
                TagCompound compound = (TagCompound) ((TagCompoundNode) tagTree.getModel().getRoot()).toTag();
                try {
                    TagStream.writeTag(compound, new FileOutputStream(fileToSaveTo), true);
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
    };
    ActionListener openListener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {

            int returnVal = fc.showOpenDialog(openFileButton);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file = fc.getSelectedFile();
                System.out.println("Opening: " + file.getName());

                openFile(file);
            }
        }
    };
    ActionListener newListener = new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            tagTree.setModel(new DefaultTreeModel(new TagCompoundNode(new TagCompound())));
            openedFile = null;
        }
    };

    listAddButton.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            listAddButtonMenu.show(listAddButton, listAddButton.getWidth() - listAddButtonMenu.getWidth(),
                    listAddButton.getHeight());
        }
    });
    openFileButton.addActionListener(openListener);
    openMenuItem.addActionListener(openListener);
    saveButton.addActionListener(saveListener);
    saveMenuItem.addActionListener(saveListener);
    newFileButton.addActionListener(newListener);
    newMenuItem.addActionListener(newListener);
    saveAsMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            File fileToSaveTo = null;
            int returnVal = fc.showSaveDialog(openFileButton);

            if (returnVal == JFileChooser.APPROVE_OPTION) {
                fileToSaveTo = fc.getSelectedFile();
            } else if (returnVal == JFileChooser.CANCEL_OPTION) {
                return;
            }
            if (fileToSaveTo != null) {
                TagCompound compound = (TagCompound) ((TagCompoundNode) tagTree.getModel().getRoot()).toTag();
                try {
                    TagStream.writeTag(compound, new FileOutputStream(fileToSaveTo), true);
                    openedFile = fileToSaveTo;
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        }
    });
    exitMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            System.exit(0);
        }
    });
    changeNameButton.addActionListener(new ActionListener() {
        @Override
        @SuppressWarnings("unchecked")
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagCompoundNode parent = (TagCompoundNode) node.getParent();
            String key = parent.getKeyByNode(node);
            JTextField textField = new JTextField();
            textField.setText(key);
            int result = JOptionPane.showConfirmDialog(null, textField, "Enter a new Key",
                    JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
            if (result == JOptionPane.OK_OPTION) {
                String newKey = textField.getText();
                if (parent.getNodeByKey(newKey) == null) {
                    BiMap<String, TagBaseNode> key2Node = (BiMap<String, TagBaseNode>) parent.getData();
                    key2Node.remove(key);
                    key2Node.put(newKey, node);
                    node.updateUserObject();
                    tagTree.updateUI();
                }
            }
        }
    });
    editValueButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            getSelectedNode().editValue();
            tagTree.updateUI();
        }
    });
    deleteTagButton.addActionListener(new ActionListener() {
        @Override
        @SuppressWarnings("unchecked")
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode parent = (TagBaseNode) node.getParent();
            parent.remove(node);
            parent.updateUserObject();
            tagTree.updateUI();
        }
    });
    tagTree.addTreeSelectionListener(new TreeSelectionListener() {
        @Override
        public void valueChanged(TreeSelectionEvent event) {
            TagBaseNode selectedNode = getSelectedNode();
            if (selectedNode != null) {
                deleteTagButton.setEnabled(true);

                if (selectedNode.getParent() != null) {
                    if (selectedNode.getParent() instanceof TagCompoundNode) {
                        changeNameButton.setEnabled(true);
                    } else {
                        changeNameButton.setEnabled(false);
                    }
                } else {
                    changeNameButton.setEnabled(false);
                    deleteTagButton.setEnabled(false);
                }

                if (selectedNode instanceof TagCompoundNode) {
                    editValueButton.setEnabled(false);
                    byteAddButton.setEnabled(true);
                    shortAddButton.setEnabled(true);
                    intAddButton.setEnabled(true);
                    longAddButton.setEnabled(true);
                    floatAddButton.setEnabled(true);
                    doubleAddButton.setEnabled(true);
                    byteArrayAddButton.setEnabled(true);
                    intArrayAddButton.setEnabled(true);
                    stringAddButton.setEnabled(true);
                    compoundAddButton.setEnabled(true);
                    listAddButton.setEnabled(true);
                } else if (selectedNode instanceof TagListNode) {
                    TagType type = ((TagListNode) selectedNode).getListTagType();
                    editValueButton.setEnabled(false);
                    byteAddButton.setEnabled(type == TagType.Byte);
                    shortAddButton.setEnabled(type == TagType.Short);
                    intAddButton.setEnabled(type == TagType.Int);
                    longAddButton.setEnabled(type == TagType.Long);
                    floatAddButton.setEnabled(type == TagType.Float);
                    doubleAddButton.setEnabled(type == TagType.Double);
                    byteArrayAddButton.setEnabled(type == TagType.Byte_Array);
                    intArrayAddButton.setEnabled(type == TagType.Int_Array);
                    stringAddButton.setEnabled(type == TagType.String);
                    compoundAddButton.setEnabled(type == TagType.Compound);
                    listAddButton.setEnabled(type == TagType.List);
                } else {
                    editValueButton.setEnabled(true);
                    byteAddButton.setEnabled(false);
                    shortAddButton.setEnabled(false);
                    intAddButton.setEnabled(false);
                    longAddButton.setEnabled(false);
                    floatAddButton.setEnabled(false);
                    doubleAddButton.setEnabled(false);
                    byteArrayAddButton.setEnabled(false);
                    intArrayAddButton.setEnabled(false);
                    stringAddButton.setEnabled(false);
                    compoundAddButton.setEnabled(false);
                    listAddButton.setEnabled(false);
                }
            } else {
                deleteTagButton.setEnabled(false);
                editValueButton.setEnabled(false);
                changeNameButton.setEnabled(false);
                byteAddButton.setEnabled(false);
                shortAddButton.setEnabled(false);
                intAddButton.setEnabled(false);
                longAddButton.setEnabled(false);
                floatAddButton.setEnabled(false);
                doubleAddButton.setEnabled(false);
                byteArrayAddButton.setEnabled(false);
                intArrayAddButton.setEnabled(false);
                stringAddButton.setEnabled(false);
                compoundAddButton.setEnabled(false);
                listAddButton.setEnabled(false);
            }
        }
    });
    byteAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagByteNode(new TagByte(false));
            addToNode(node, newNode);
        }
    });
    shortAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagShortNode(new TagShort((short) 0));
            addToNode(node, newNode);
        }
    });
    intAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagIntNode(new TagInt(0));
            addToNode(node, newNode);
        }
    });
    longAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagLongNode(new TagLong(0L));
            addToNode(node, newNode);
        }
    });
    floatAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagFloatNode(new TagFloat(0F));
            addToNode(node, newNode);
        }
    });
    doubleAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagDoubleNode(new TagDouble(0D));
            addToNode(node, newNode);
        }
    });
    byteArrayAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagByteArrayNode(new TagByteArray(new byte[0]));
            addToNode(node, newNode);
        }
    });
    intArrayAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagIntArrayNode(new TagIntArray(new int[0]));
            addToNode(node, newNode);
        }
    });
    stringAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagStringNode(new TagString(""));
            addToNode(node, newNode);
        }
    });
    compoundAddButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagBaseNode newNode = new TagCompoundNode(new TagCompound());
            addToNode(node, newNode);
        }
    });
    byteMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Byte;
            addToNode(node, newNode);
        }
    });
    shortMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Short;
            addToNode(node, newNode);
        }
    });
    intMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Int;
            addToNode(node, newNode);
        }
    });
    longMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Long;
            addToNode(node, newNode);
        }
    });
    floatMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Float;
            addToNode(node, newNode);
        }
    });
    doubleMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Double;
            addToNode(node, newNode);
        }
    });
    byteArrayMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Byte_Array;
            addToNode(node, newNode);
        }
    });
    byteMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Byte;
            addToNode(node, newNode);
        }
    });
    intArrayMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Int_Array;
            addToNode(node, newNode);
        }
    });
    stringMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.String;
            addToNode(node, newNode);
        }
    });
    compoundMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.Compound;
            addToNode(node, newNode);
        }
    });
    listMenuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            TagBaseNode node = getSelectedNode();
            TagListNode newNode = new TagListNode(new TagList());
            newNode.type = TagType.List;
            addToNode(node, newNode);
        }
    });
}

From source file:dagger2.internal.codegen.writer.JavaWriter.java

public Appendable write(Appendable appendable) throws IOException {
    if (!packageName.isEmpty()) {
        appendable.append("package ").append(packageName).append(";\n\n");
    }//from  ww  w.  jav a2s  .  c o m

    // write imports
    ImmutableSet<ClassName> classNames = FluentIterable.from(typeWriters)
            .transformAndConcat(new Function<HasClassReferences, Set<ClassName>>() {
                @Override
                public Set<ClassName> apply(HasClassReferences input) {
                    return input.referencedClasses();
                }
            }).toSet();

    ImmutableSortedSet<ClassName> importCandidates = ImmutableSortedSet.<ClassName>naturalOrder()
            .addAll(explicitImports).addAll(classNames).build();
    ImmutableSet<ClassName> typeNames = FluentIterable.from(typeWriters)
            .transform(new Function<TypeWriter, ClassName>() {
                @Override
                public ClassName apply(TypeWriter input) {
                    return input.name;
                }
            }).toSet();

    ImmutableSet.Builder<String> declaredSimpleNamesBuilder = ImmutableSet.builder();
    Deque<TypeWriter> declaredTypes = Queues.newArrayDeque(typeWriters);
    while (!declaredTypes.isEmpty()) {
        TypeWriter currentType = declaredTypes.pop();
        declaredSimpleNamesBuilder.add(currentType.name().simpleName());
        declaredTypes.addAll(currentType.nestedTypeWriters);
    }

    ImmutableSet<String> declaredSimpleNames = declaredSimpleNamesBuilder.build();

    BiMap<String, ClassName> importedClassIndex = HashBiMap.create();
    for (ClassName className : importCandidates) {
        if (!(className.packageName().equals(packageName) && !className.enclosingClassName().isPresent())
                && !(className.packageName().equals("java.lang") && className.enclosingSimpleNames().isEmpty())
                && !typeNames.contains(className.topLevelClassName())) {
            Optional<ClassName> importCandidate = Optional.of(className);
            while (importCandidate.isPresent()
                    && (importedClassIndex.containsKey(importCandidate.get().simpleName())
                            || declaredSimpleNames.contains(importCandidate.get().simpleName()))) {
                importCandidate = importCandidate.get().enclosingClassName();
            }
            if (importCandidate.isPresent()) {
                appendable.append("import ").append(importCandidate.get().canonicalName()).append(";\n");
                importedClassIndex.put(importCandidate.get().simpleName(), importCandidate.get());
            }
        }
    }

    appendable.append('\n');

    CompilationUnitContext context = new CompilationUnitContext(packageName,
            ImmutableSet.copyOf(importedClassIndex.values()));

    // write types
    for (TypeWriter typeWriter : typeWriters) {
        typeWriter.write(appendable, context.createSubcontext(typeNames)).append('\n');
    }
    return appendable;
}

From source file:dagger.internal.codegen.writer.JavaWriter.java

public <A extends Appendable> A write(A appendable) throws IOException {
    if (!packageName.isEmpty()) {
        appendable.append("package ").append(packageName).append(";\n\n");
    }//w w w . ja v  a2s . c o m

    // write imports
    ImmutableSet<ClassName> classNames = FluentIterable.from(typeWriters)
            .transformAndConcat(new Function<HasClassReferences, Set<ClassName>>() {
                @Override
                public Set<ClassName> apply(HasClassReferences input) {
                    return input.referencedClasses();
                }
            }).toSet();

    ImmutableSortedSet<ClassName> importCandidates = ImmutableSortedSet.<ClassName>naturalOrder()
            .addAll(explicitImports).addAll(classNames).build();
    ImmutableSet<ClassName> typeNames = FluentIterable.from(typeWriters)
            .transform(new Function<TypeWriter, ClassName>() {
                @Override
                public ClassName apply(TypeWriter input) {
                    return input.name;
                }
            }).toSet();

    ImmutableSet.Builder<String> declaredSimpleNamesBuilder = ImmutableSet.builder();
    Deque<TypeWriter> declaredTypes = new ArrayDeque<>(typeWriters);
    while (!declaredTypes.isEmpty()) {
        TypeWriter currentType = declaredTypes.pop();
        declaredSimpleNamesBuilder.add(currentType.name().simpleName());
        declaredTypes.addAll(currentType.nestedTypeWriters);
    }

    ImmutableSet<String> declaredSimpleNames = declaredSimpleNamesBuilder.build();

    BiMap<String, ClassName> importedClassIndex = HashBiMap.create();
    for (ClassName className : importCandidates) {
        if (!(className.packageName().equals(packageName) && !className.enclosingClassName().isPresent())
                && !(className.packageName().equals("java.lang") && className.enclosingSimpleNames().isEmpty())
                && !typeNames.contains(className.topLevelClassName())) {
            Optional<ClassName> importCandidate = Optional.of(className);
            while (importCandidate.isPresent()
                    && (importedClassIndex.containsKey(importCandidate.get().simpleName())
                            || declaredSimpleNames.contains(importCandidate.get().simpleName()))) {
                importCandidate = importCandidate.get().enclosingClassName();
            }
            if (importCandidate.isPresent()) {
                appendable.append("import ").append(importCandidate.get().canonicalName()).append(";\n");
                importedClassIndex.put(importCandidate.get().simpleName(), importCandidate.get());
            }
        }
    }

    appendable.append('\n');

    CompilationUnitContext context = new CompilationUnitContext(packageName,
            ImmutableSet.copyOf(importedClassIndex.values()));

    // write types
    for (TypeWriter typeWriter : typeWriters) {
        typeWriter.write(appendable, context.createSubcontext(typeNames)).append('\n');
    }
    return appendable;
}

From source file:org.diorite.impl.connection.EnumProtocol.java

public synchronized <T extends Packet<?>> void init(final EnumProtocolDirection enumProtocolDirection,
        final int id, final Class<T> clazz, final Supplier<T> supplier) {
    BiMap<Integer, Class<?>> create = this.packetsMap.get(enumProtocolDirection);
    final Int2ObjectMap<Supplier<? extends Packet<?>>> suppMap;
    if (create == null) {
        create = HashBiMap.create();//  w ww  . j  a va 2 s  . c om
        suppMap = new Int2ObjectOpenHashMap<>((this == PLAY) ? PLAY_PACKETS_SIZE : OTHER_PACKETS_SIZE, .1f);
        this.packetsMap.put(enumProtocolDirection, create);
        this.packetsSupplierMap.put(enumProtocolDirection, suppMap);
    } else {
        suppMap = this.packetsSupplierMap.get(enumProtocolDirection);
    }
    if (create.containsValue(clazz)) {
        throw new IllegalArgumentException(
                enumProtocolDirection + " packet " + clazz.getName() + " is already known to ID "
                        + Integer.toHexString(create.inverse().get(clazz)) + " (" + create.get(id) + ")");
    }
    if (create.containsKey(id)) {
        throw new IllegalArgumentException(enumProtocolDirection + " packet (" + clazz.getName() + ") with id "
                + Integer.toHexString(id) + " is already known to packet " + create.get(id));
    }
    classEnumProtocolMap.put(clazz, this);
    create.put(id, clazz);
    suppMap.put(id, supplier);
}

From source file:com.addthis.codec.plugins.PluginRegistry.java

public PluginRegistry(@Nonnull Config config) {
    this.config = config;
    Config defaultPluginMapSettings = config.getConfig(PLUGIN_DEFAULTS_PATH);
    String pluginPath = config.getString(PLUGINS_PATH_PATH);
    Config pluginConfigs = config.getConfig(pluginPath);

    Set<String> categories = pluginConfigs.root().keySet();
    Map<String, PluginMap> mapsFromConfig = new HashMap<>(categories.size());
    BiMap<Class<?>, PluginMap> mapsFromConfigByClass = HashBiMap.create(categories.size());
    // Throwaway ObjectMapper to facilitate AnnotatedClass construction below
    ObjectMapper temp = new ObjectMapper();
    for (String category : categories) {
        Config pluginConfig = pluginConfigs.getConfig(category).withFallback(defaultPluginMapSettings);
        PluginMap pluginMap = new PluginMap(category, pluginConfig);
        mapsFromConfig.put(category, pluginMap);
        Class<?> baseClass = pluginMap.baseClass();
        if (baseClass != null) {
            // if two categories define _class, then ensure the annotated one (if any) is the canonical one
            if (mapsFromConfigByClass.containsKey(baseClass)) {
                AnnotatedClass annotatedClass = AnnotatedClass.construct(temp.constructType(baseClass),
                        temp.getDeserializationConfig());
                String existingCategory = mapsFromConfigByClass.get(baseClass).category();
                if (!annotatedClass.hasAnnotation(Pluggable.class)
                        || !annotatedClass.getAnnotation(Pluggable.class).value().equals(existingCategory)) {
                    mapsFromConfigByClass.put(pluginMap.baseClass(), pluginMap);
                }/*  w ww.java2s .  co  m*/
            } else {
                mapsFromConfigByClass.put(pluginMap.baseClass(), pluginMap);
            }
        }
    }
    pluginMapsByCategory = Collections.unmodifiableMap(mapsFromConfig);
    pluginMapsByClass = Maps.unmodifiableBiMap(mapsFromConfigByClass);
}

From source file:org.bimserver.ifc.IfcModel.java

private void fixOidsFlat(IdEObject idEObject, OidProvider oidProvider, BiMap<Long, IdEObject> temp) {
    if (idEObject == null) {
        return;//from  w  w  w  . j  a v a 2s .c o  m
    }
    if (temp.containsValue(idEObject)) {
        return;
    }
    ((IdEObjectImpl) idEObject).setOid(oidProvider.newOid(idEObject.eClass()));
    if (objects.containsValue(idEObject)) {
        temp.put(idEObject.getOid(), idEObject);
    }
}