List of usage examples for com.google.common.collect BiMap put
@Override @Nullable V put(@Nullable K key, @Nullable V value);
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); } }