List of usage examples for java.util SortedMap keySet
Set<K> keySet();
From source file:com.google.cloud.dns.testing.LocalDnsHelper.java
/** * Applies changes to a zone. Repeatedly tries until succeeds. Thread safe and deadlock safe. *///w w w . j a v a 2s .co m private void applyExistingChange(String projectId, String zoneName, String changeId) { Change change = findChange(projectId, zoneName, changeId); if (change == null) { return; // no such change exists, nothing to do } ZoneContainer wrapper = findZone(projectId, zoneName); if (wrapper == null) { return; // no such zone exists; it might have been deleted by another thread } AtomicReference<ImmutableSortedMap<String, ResourceRecordSet>> dnsRecords = wrapper.dnsRecords(); while (true) { // managed zone must have a set of records which is not null ImmutableSortedMap<String, ResourceRecordSet> original = dnsRecords.get(); // the copy will be populated when handling deletions SortedMap<String, ResourceRecordSet> copy = new TreeMap<>(); // apply deletions first List<ResourceRecordSet> deletions = change.getDeletions(); if (deletions != null) { for (Map.Entry<String, ResourceRecordSet> entry : original.entrySet()) { if (!deletions.contains(entry.getValue())) { copy.put(entry.getKey(), entry.getValue()); } } } else { copy.putAll(original); } // apply additions List<ResourceRecordSet> additions = change.getAdditions(); if (additions != null) { for (ResourceRecordSet addition : additions) { ResourceRecordSet rrset = new ResourceRecordSet(); rrset.setName(addition.getName()); rrset.setRrdatas(ImmutableList.copyOf(addition.getRrdatas())); rrset.setTtl(addition.getTtl()); rrset.setType(addition.getType()); String id = getUniqueId(copy.keySet()); copy.put(id, rrset); } } boolean success = dnsRecords.compareAndSet(original, ImmutableSortedMap.copyOf(copy)); if (success) { break; // success if no other thread modified the value in the meantime } } change.setStatus("done"); }
From source file:com.google.gwt.emultest.java.util.TreeMapTest.java
/** * Verify that two SortedMaps are deeply equivalent. * * @param expected/*w w w .j av a 2 s . co m*/ * @param actual */ private static <K, V> void _assertEquals(SortedMap<K, V> expected, SortedMap<K, V> actual) { _assertEquals((Map<K, V>) expected, (Map<K, V>) actual); // verify the order of the associated collections assertEquals(expected.keySet().toArray(), actual.keySet().toArray()); assertEquals(expected.entrySet().toArray(), actual.entrySet().toArray()); assertEquals(expected.values().toArray(), actual.values().toArray()); }
From source file:org.rapla.storage.impl.server.LocalAbstractCachableOperator.java
private Collection<ReferenceInfo> getEntities(User user, final Date timestamp, boolean isDelete) throws RaplaException { DeleteUpdateEntry fromElement = new DeleteUpdateEntry(); Class<? extends Entity> type = Allocatable.class; String dummyId = ""; fromElement.reference = new ReferenceInfo(dummyId, type); fromElement.timestamp = timestamp;//from w w w. java 2 s.co m LinkedList<ReferenceInfo> result = new LinkedList<ReferenceInfo>(); Lock lock = readLock(); try { SortedMap<DeleteUpdateEntry, String> tailMap = deleteUpdateSet.inverseBidiMap().tailMap(fromElement); Set<DeleteUpdateEntry> tailSet = tailMap.keySet(); for (DeleteUpdateEntry entry : tailSet) { if (entry.isDelete != isDelete) { continue; } if (isAffected(entry, user)) { ReferenceInfo deletedReference = entry.reference; result.add(deletedReference); } } } finally { unlock(lock); } return result; }
From source file:org.wso2.carbon.ml.database.internal.MLDatabaseService.java
/** * Create the JSON string with summary statistics for a column. * * @param type Data-type of the column/*from w w w . j a v a 2 s.c om*/ * @param graphFrequencies Bin frequencies of the column * @param missing Number of missing values in the column * @param unique Number of unique values in the column * @param descriptiveStats DescriptiveStats object of the column * @return JSON representation of the summary statistics of the column */ private JSONArray createJson(String type, SortedMap<?, Integer> graphFrequencies, int missing, int unique, DescriptiveStatistics descriptiveStats) throws JSONException { JSONObject json = new JSONObject(); JSONArray freqs = new JSONArray(); Object[] categoryNames = graphFrequencies.keySet().toArray(); // Create an array with intervals/categories and their frequencies. for (int i = 0; i < graphFrequencies.size(); i++) { JSONArray temp = new JSONArray(); temp.put(categoryNames[i].toString()); temp.put(graphFrequencies.get(categoryNames[i])); freqs.put(temp); } // Put the statistics to a json object json.put("unique", unique); json.put("missing", missing); DecimalFormat decimalFormat = new DecimalFormat("#.###"); if (descriptiveStats.getN() != 0) { json.put("mean", decimalFormat.format(descriptiveStats.getMean())); json.put("min", decimalFormat.format(descriptiveStats.getMin())); json.put("max", decimalFormat.format(descriptiveStats.getMax())); json.put("median", decimalFormat.format(descriptiveStats.getPercentile(50))); json.put("std", decimalFormat.format(descriptiveStats.getStandardDeviation())); if (type.equalsIgnoreCase(FeatureType.NUMERICAL)) { json.put("skewness", decimalFormat.format(descriptiveStats.getSkewness())); } } json.put("values", freqs); json.put("bar", true); json.put("key", "Frequency"); JSONArray summaryStatArray = new JSONArray(); summaryStatArray.put(json); return summaryStatArray; }
From source file:org.apache.accumulo.tserver.tablet.Tablet.java
private CompactionStats _majorCompact(MajorCompactionReason reason) throws IOException, CompactionCanceledException { long t1, t2, t3; Pair<Long, UserCompactionConfig> compactionId = null; CompactionStrategy strategy = null;// ww w .j av a2s.co m Map<FileRef, Pair<Key, Key>> firstAndLastKeys = null; if (reason == MajorCompactionReason.USER) { try { compactionId = getCompactionID(); strategy = createCompactionStrategy(compactionId.getSecond().getCompactionStrategy()); } catch (NoNodeException e) { throw new RuntimeException(e); } } else if (reason == MajorCompactionReason.NORMAL || reason == MajorCompactionReason.IDLE) { strategy = Property.createTableInstanceFromPropertyName(tableConfiguration, Property.TABLE_COMPACTION_STRATEGY, CompactionStrategy.class, new DefaultCompactionStrategy()); strategy.init(Property.getCompactionStrategyOptions(tableConfiguration)); } else if (reason == MajorCompactionReason.CHOP) { firstAndLastKeys = getFirstAndLastKeys(getDatafileManager().getDatafileSizes()); } else { throw new IllegalArgumentException("Unknown compaction reason " + reason); } if (strategy != null) { MajorCompactionRequest request = new MajorCompactionRequest(extent, reason, getTabletServer().getFileSystem(), tableConfiguration); request.setFiles(getDatafileManager().getDatafileSizes()); strategy.gatherInformation(request); } Map<FileRef, DataFileValue> filesToCompact = null; int maxFilesToCompact = tableConfiguration.getCount(Property.TSERV_MAJC_THREAD_MAXOPEN); CompactionStats majCStats = new CompactionStats(); CompactionPlan plan = null; boolean propogateDeletes = false; boolean updateCompactionID = false; synchronized (this) { // plan all that work that needs to be done in the sync block... then do the actual work // outside the sync block t1 = System.currentTimeMillis(); majorCompactionState = CompactionState.WAITING_TO_START; getTabletMemory().waitForMinC(); t2 = System.currentTimeMillis(); majorCompactionState = CompactionState.IN_PROGRESS; notifyAll(); VolumeManager fs = getTabletServer().getFileSystem(); if (extent.isRootTablet()) { // very important that we call this before doing major compaction, // otherwise deleted compacted files could possible be brought back // at some point if the file they were compacted to was legitimately // removed by a major compaction RootFiles.cleanupReplacement(fs, fs.listStatus(this.location), false); } SortedMap<FileRef, DataFileValue> allFiles = getDatafileManager().getDatafileSizes(); List<FileRef> inputFiles = new ArrayList<FileRef>(); if (reason == MajorCompactionReason.CHOP) { // enforce rules: files with keys outside our range need to be compacted inputFiles.addAll(findChopFiles(extent, firstAndLastKeys, allFiles.keySet())); } else { MajorCompactionRequest request = new MajorCompactionRequest(extent, reason, fs, tableConfiguration); request.setFiles(allFiles); plan = strategy.getCompactionPlan(request); if (plan != null) { plan.validate(allFiles.keySet()); inputFiles.addAll(plan.inputFiles); } } if (inputFiles.isEmpty()) { if (reason == MajorCompactionReason.USER) { if (compactionId.getSecond().getIterators().isEmpty()) { log.debug("No-op major compaction by USER on 0 input files because no iterators present."); lastCompactID = compactionId.getFirst(); updateCompactionID = true; } else { log.debug("Major compaction by USER on 0 input files with iterators."); filesToCompact = new HashMap<>(); } } else { return majCStats; } } else { // If no original files will exist at the end of the compaction, we do not have to propogate deletes Set<FileRef> droppedFiles = new HashSet<>(); droppedFiles.addAll(inputFiles); if (plan != null) droppedFiles.addAll(plan.deleteFiles); propogateDeletes = !(droppedFiles.equals(allFiles.keySet())); log.debug("Major compaction plan: " + plan + " propogate deletes : " + propogateDeletes); filesToCompact = new HashMap<>(allFiles); filesToCompact.keySet().retainAll(inputFiles); getDatafileManager().reserveMajorCompactingFiles(filesToCompact.keySet()); } t3 = System.currentTimeMillis(); } try { log.debug(String.format("MajC initiate lock %.2f secs, wait %.2f secs", (t3 - t2) / 1000.0, (t2 - t1) / 1000.0)); if (updateCompactionID) { MetadataTableUtil.updateTabletCompactID(extent, compactionId.getFirst(), tabletServer, getTabletServer().getLock()); return majCStats; } if (!propogateDeletes && compactionId == null) { // compacting everything, so update the compaction id in metadata try { compactionId = getCompactionID(); if (compactionId.getSecond().getCompactionStrategy() != null) { compactionId = null; // TODO maybe return unless chop? } } catch (NoNodeException e) { throw new RuntimeException(e); } } List<IteratorSetting> compactionIterators = new ArrayList<IteratorSetting>(); if (compactionId != null) { if (reason == MajorCompactionReason.USER) { if (getCompactionCancelID() >= compactionId.getFirst()) { // compaction was canceled return majCStats; } compactionIterators = compactionId.getSecond().getIterators(); synchronized (this) { if (lastCompactID >= compactionId.getFirst()) // already compacted return majCStats; } } } // need to handle case where only one file is being major compacted // ACCUMULO-3645 run loop at least once, even if filesToCompact.isEmpty() do { int numToCompact = maxFilesToCompact; if (filesToCompact.size() > maxFilesToCompact && filesToCompact.size() < 2 * maxFilesToCompact) { // on the second to last compaction pass, compact the minimum amount of files possible numToCompact = filesToCompact.size() - maxFilesToCompact + 1; } Set<FileRef> smallestFiles = removeSmallest(filesToCompact, numToCompact); FileRef fileName = getNextMapFilename( (filesToCompact.size() == 0 && !propogateDeletes) ? "A" : "C"); FileRef compactTmpName = new FileRef(fileName.path().toString() + "_tmp"); AccumuloConfiguration tableConf = createTableConfiguration(tableConfiguration, plan); Span span = Trace.start("compactFiles"); try { CompactionEnv cenv = new CompactionEnv() { @Override public boolean isCompactionEnabled() { return Tablet.this.isCompactionEnabled(); } @Override public IteratorScope getIteratorScope() { return IteratorScope.majc; } @Override public RateLimiter getReadLimiter() { return getTabletServer().getMajorCompactionReadLimiter(); } @Override public RateLimiter getWriteLimiter() { return getTabletServer().getMajorCompactionWriteLimiter(); } }; HashMap<FileRef, DataFileValue> copy = new HashMap<FileRef, DataFileValue>( getDatafileManager().getDatafileSizes()); if (!copy.keySet().containsAll(smallestFiles)) throw new IllegalStateException("Cannot find data file values for " + smallestFiles); copy.keySet().retainAll(smallestFiles); log.debug("Starting MajC " + extent + " (" + reason + ") " + copy.keySet() + " --> " + compactTmpName + " " + compactionIterators); // always propagate deletes, unless last batch boolean lastBatch = filesToCompact.isEmpty(); Compactor compactor = new Compactor(tabletServer, this, copy, null, compactTmpName, lastBatch ? propogateDeletes : true, cenv, compactionIterators, reason.ordinal(), tableConf); CompactionStats mcs = compactor.call(); span.data("files", "" + smallestFiles.size()); span.data("read", "" + mcs.getEntriesRead()); span.data("written", "" + mcs.getEntriesWritten()); majCStats.add(mcs); if (lastBatch && plan != null && plan.deleteFiles != null) { smallestFiles.addAll(plan.deleteFiles); } getDatafileManager().bringMajorCompactionOnline(smallestFiles, compactTmpName, fileName, filesToCompact.size() == 0 && compactionId != null ? compactionId.getFirst() : null, new DataFileValue(mcs.getFileSize(), mcs.getEntriesWritten())); // when major compaction produces a file w/ zero entries, it will be deleted... do not want // to add the deleted file if (filesToCompact.size() > 0 && mcs.getEntriesWritten() > 0) { filesToCompact.put(fileName, new DataFileValue(mcs.getFileSize(), mcs.getEntriesWritten())); } } finally { span.stop(); } } while (filesToCompact.size() > 0); return majCStats; } finally { synchronized (Tablet.this) { getDatafileManager().clearMajorCompactingFile(); } } }
From source file:org.dbgl.gui.SettingsDialog.java
protected void createContents() { shell = new Shell(getParent(), SWT.TITLE | SWT.CLOSE | SWT.BORDER | SWT.RESIZE | SWT.APPLICATION_MODAL); shell.setLayout(new BorderLayout(0, 0)); shell.addControlListener(new SizeControlAdapter(shell, "settingsdialog")); shell.setText(settings.msg("dialog.settings.title")); final TabFolder tabFolder = new TabFolder(shell, SWT.NONE); final TabItem generalTabItem = new TabItem(tabFolder, SWT.NONE); generalTabItem.setText(settings.msg("dialog.settings.tab.general")); final Composite composite = new Composite(tabFolder, SWT.NONE); composite.setLayout(new GridLayout()); generalTabItem.setControl(composite); final Group dosboxGroup = new Group(composite, SWT.NONE); dosboxGroup.setText(settings.msg("dialog.settings.dosbox")); dosboxGroup.setLayout(new GridLayout(2, false)); final Label showConsoleLabel = new Label(dosboxGroup, SWT.NONE); showConsoleLabel.setText(settings.msg("dialog.settings.hidestatuswindow")); final Button console = new Button(dosboxGroup, SWT.CHECK); console.setSelection(conf.getBooleanValue("dosbox", "hideconsole")); final Group sendToGroup = new Group(composite, SWT.NONE); sendToGroup.setText(settings.msg("dialog.settings.sendto")); sendToGroup.setLayout(new GridLayout(2, false)); final Label enableCommLabel = new Label(sendToGroup, SWT.NONE); enableCommLabel.setText(settings.msg("dialog.settings.enableport")); final Button portEnabled = new Button(sendToGroup, SWT.CHECK); portEnabled.setSelection(conf.getBooleanValue("communication", "port_enabled")); portEnabled.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { port.setEnabled(portEnabled.getSelection()); }//from ww w.j a v a 2 s . com }); final Label portnumberLabel = new Label(sendToGroup, SWT.NONE); portnumberLabel.setText(settings.msg("dialog.settings.port")); port = new Text(sendToGroup, SWT.BORDER); port.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); port.setText(conf.getValue("communication", "port")); port.setEnabled(portEnabled.getSelection()); final Group profileDefGroup = new Group(composite, SWT.NONE); profileDefGroup.setText(settings.msg("dialog.settings.profiledefaults")); profileDefGroup.setLayout(new GridLayout(3, false)); final Label configFileLabel = new Label(profileDefGroup, SWT.NONE); configFileLabel.setText(settings.msg("dialog.settings.configfile")); confLocation = new Combo(profileDefGroup, SWT.READ_ONLY); confLocation.setItems(confLocations); confLocation.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); confLocation.select(conf.getIntValue("profiledefaults", "confpath")); confFilename = new Combo(profileDefGroup, SWT.READ_ONLY); confFilename.setItems(confFilenames); confFilename.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); confFilename.select(conf.getIntValue("profiledefaults", "conffile")); final Group i18nGroup = new Group(composite, SWT.NONE); i18nGroup.setText(settings.msg("dialog.settings.i18n")); i18nGroup.setLayout(new GridLayout(2, false)); final Label languageLabel = new Label(i18nGroup, SWT.NONE); languageLabel.setText(settings.msg("dialog.settings.languagecountry")); localeCombo = new Combo(i18nGroup, SWT.READ_ONLY); Locale locale = new Locale(conf.getValue("locale", "language"), conf.getValue("locale", "country"), conf.getValue("locale", "variant")); final SortedMap<String, Locale> locales = new TreeMap<String, Locale>(); String locString = ""; java.util.List<String> supportedLanguages = new ArrayList<String>(SUPPORTED_LANGUAGES); File[] files = new File("./plugins/i18n").listFiles(); if (files != null) { for (File file : files) { String name = file.getName(); if (name.startsWith("MessagesBundle_") && name.endsWith(".properties")) { String code = name.substring("MessagesBundle_".length(), name.indexOf(".properties")); if (code.length() > 0) { supportedLanguages.add(code); } } } } for (String lang : supportedLanguages) { Locale loc = allLocales.get(lang); String variant = null; if (loc == null && StringUtils.countMatches(lang, "_") == 2) { String langWithoutVariant = StringUtils.removeEnd(StringUtils.substringBeforeLast(lang, "_"), "_"); variant = StringUtils.substringAfterLast(lang, "_"); loc = allLocales.get(langWithoutVariant); } if (loc != null) { StringBuffer s = new StringBuffer(loc.getDisplayLanguage(Locale.getDefault())); if (loc.getCountry().length() > 0) s.append(" - ").append(loc.getDisplayCountry(Locale.getDefault())); if (variant != null) { s.append(" (").append(variant).append(')'); loc = new Locale(loc.getLanguage(), loc.getCountry(), variant); } locales.put(s.toString(), loc); if (loc.equals(locale)) { locString = s.toString(); } } } for (String sloc : locales.keySet()) { localeCombo.add(sloc); } localeCombo.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); localeCombo.setText(locString); localeCombo.setVisibleItemCount(20); columnsTabItem = new TabItem(tabFolder, SWT.NONE); columnsTabItem.setText(settings.msg("dialog.settings.tab.profiletable")); final Composite composite2 = new Composite(tabFolder, SWT.NONE); composite2.setLayout(new BorderLayout(0, 0)); columnsTabItem.setControl(composite2); final Group visColumnsGroup = new Group(composite2, SWT.NONE); visColumnsGroup.setLayout(new FillLayout()); visColumnsGroup.setText(settings.msg("dialog.settings.visiblecolunms")); visible_columns = new Table(visColumnsGroup, SWT.FULL_SELECTION | SWT.BORDER | SWT.CHECK); visible_columns.setLinesVisible(true); TableColumn column1 = new TableColumn(visible_columns, SWT.NONE); column1.setWidth(350); java.util.List<Integer> visibleColumnIDs = new ArrayList<Integer>(); for (int i = 0; i < MainWindow.columnNames.length; i++) if (conf.getBooleanValue("gui", "column" + (i + 1) + "visible")) visibleColumnIDs.add(i); java.util.List<Integer> orderedVisibleColumnIDs = new ArrayList<Integer>(); int[] columnOrder = conf.getIntValues("gui", "columnorder"); for (int i = 0; i < columnOrder.length; i++) orderedVisibleColumnIDs.add(visibleColumnIDs.get(columnOrder[i])); java.util.List<Integer> remainingColumnIDs = new ArrayList<Integer>(); for (int i = 0; i < MainWindow.columnNames.length; i++) if (!orderedVisibleColumnIDs.contains(i)) remainingColumnIDs.add(i); allColumnIDs = new ArrayList<Integer>(orderedVisibleColumnIDs); allColumnIDs.addAll(remainingColumnIDs); visibleColumns = new TableItem[MainWindow.columnNames.length]; for (int i = 0; i < MainWindow.columnNames.length; i++) { visibleColumns[i] = new TableItem(visible_columns, SWT.BORDER); visibleColumns[i].setText(MainWindow.columnNames[allColumnIDs.get(i)]); visibleColumns[i] .setChecked(conf.getBooleanValue("gui", "column" + (allColumnIDs.get(i) + 1) + "visible")); } final TableEditor editor = new TableEditor(visible_columns); editor.horizontalAlignment = SWT.LEFT; editor.grabHorizontal = true; editor.minimumWidth = 50; visible_columns.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { // Clean up any previous editor control Control oldEditor = editor.getEditor(); if (oldEditor != null) { oldEditor.dispose(); } // Identify the selected row TableItem item = (TableItem) event.item; if (item == null) { return; } int selIdx = item.getParent().getSelectionIndex(); if (selIdx == -1) return; int idx = allColumnIDs.get(selIdx); if (idx < Constants.RO_COLUMN_NAMES || idx >= (Constants.RO_COLUMN_NAMES + Constants.EDIT_COLUMN_NAMES)) return; // The control that will be the editor must be a child of the table Text newEditor = new Text(visible_columns, SWT.NONE); newEditor.setText(item.getText(EDITABLE_COLUMN)); newEditor.addModifyListener(new ModifyListener() { public void modifyText(final ModifyEvent mEvent) { Text text = (Text) editor.getEditor(); editor.getItem().setText(EDITABLE_COLUMN, text.getText()); } }); newEditor.selectAll(); newEditor.setFocus(); editor.setEditor(newEditor, item, EDITABLE_COLUMN); } }); final Group addProfGroup = new Group(composite2, SWT.NONE); addProfGroup.setLayout(new GridLayout(2, false)); addProfGroup.setText(settings.msg("dialog.settings.addeditduplicateprofile")); addProfGroup.setLayoutData(BorderLayout.SOUTH); final Label autoSortLabel = new Label(addProfGroup, SWT.NONE); autoSortLabel.setText(settings.msg("dialog.settings.autosort")); final Button autosort = new Button(addProfGroup, SWT.CHECK); autosort.setSelection(conf.getBooleanValue("gui", "autosortonupdate")); final TabItem dynTabItem = new TabItem(tabFolder, SWT.NONE); dynTabItem.setText(settings.msg("dialog.settings.tab.dynamicoptions")); final Composite composite_1 = new Composite(tabFolder, SWT.NONE); composite_1.setLayout(new FillLayout()); dynTabItem.setControl(composite_1); final Group dynOptionsGroup = new Group(composite_1, SWT.NONE); dynOptionsGroup.setLayout(new GridLayout(2, false)); dynOptionsGroup.setText(settings.msg("dialog.settings.dynamicoptions")); final Label optionsLabel = new Label(dynOptionsGroup, SWT.NONE); optionsLabel.setText(settings.msg("dialog.settings.options")); final Label valuesLabel = new Label(dynOptionsGroup, SWT.NONE); valuesLabel.setText(settings.msg("dialog.settings.values")); options = new List(dynOptionsGroup, SWT.V_SCROLL | SWT.BORDER); options.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { storeValues(); previousSelection = options.getSelectionIndex(); if (previousSelection != -1) { values.setText(conf.getMultilineValues("profile", options.getItem(previousSelection), values.getLineDelimiter())); } } }); options.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); for (String s : conf.getAllItemNames("profile")) { options.add(s); } values = new Text(dynOptionsGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); values.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); final TabItem guiTabItem = new TabItem(tabFolder, SWT.NONE); guiTabItem.setText(settings.msg("dialog.settings.tab.gui")); final Composite composite1 = new Composite(tabFolder, SWT.NONE); composite1.setLayout(new GridLayout(2, false)); guiTabItem.setControl(composite1); Group screenshots = new Group(composite1, SWT.NONE); screenshots.setLayout(new GridLayout(3, false)); GridData screenshotsLData = new GridData(); screenshotsLData.grabExcessHorizontalSpace = true; screenshotsLData.horizontalAlignment = GridData.FILL; screenshotsLData.horizontalSpan = 2; screenshots.setLayoutData(screenshotsLData); screenshots.setText(settings.msg("dialog.settings.screenshots")); Label heightLabel = new Label(screenshots, SWT.NONE); heightLabel.setText(settings.msg("dialog.settings.height")); GridData sshotsHeightData = new GridData(); sshotsHeightData.grabExcessHorizontalSpace = true; sshotsHeightData.horizontalAlignment = GridData.FILL; screenshotsHeight = new Scale(screenshots, SWT.NONE); screenshotsHeight.setMaximum(750); screenshotsHeight.setMinimum(50); screenshotsHeight.setLayoutData(sshotsHeightData); screenshotsHeight.setIncrement(25); screenshotsHeight.setPageIncrement(100); screenshotsHeight.setSelection(conf.getIntValue("gui", "screenshotsheight")); screenshotsHeight.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent evt) { heightValue.setText(screenshotsHeight.getSelection() + settings.msg("dialog.settings.px")); heightValue.pack(); } }); heightValue = new Label(screenshots, SWT.NONE); heightValue.setText(screenshotsHeight.getSelection() + settings.msg("dialog.settings.px")); final Label displayFilenameLabel = new Label(screenshots, SWT.NONE); displayFilenameLabel.setText(settings.msg("dialog.settings.screenshotsfilename")); final Button displayFilename = new Button(screenshots, SWT.CHECK); displayFilename.setSelection(conf.getBooleanValue("gui", "screenshotsfilename")); Group screenshotsColumn = new Group(composite1, SWT.NONE); screenshotsColumn.setLayout(new GridLayout(3, false)); GridData screenshotsCData = new GridData(); screenshotsCData.grabExcessHorizontalSpace = true; screenshotsCData.horizontalAlignment = GridData.FILL; screenshotsCData.horizontalSpan = 2; screenshotsColumn.setLayoutData(screenshotsCData); screenshotsColumn.setText(settings.msg("dialog.settings.screenshotscolumn")); Label columnHeightLabel = new Label(screenshotsColumn, SWT.NONE); columnHeightLabel.setText(settings.msg("dialog.settings.height")); screenshotsColumnHeight = new Scale(screenshotsColumn, SWT.NONE); screenshotsColumnHeight.setMaximum(200); screenshotsColumnHeight.setMinimum(16); GridData sshotsColumnHeightData = new GridData(); sshotsColumnHeightData.grabExcessHorizontalSpace = true; sshotsColumnHeightData.horizontalAlignment = GridData.FILL; screenshotsColumnHeight.setLayoutData(sshotsColumnHeightData); screenshotsColumnHeight.setIncrement(4); screenshotsColumnHeight.setPageIncrement(16); screenshotsColumnHeight.setSelection(conf.getIntValue("gui", "screenshotscolumnheight")); screenshotsColumnHeight.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent evt) { columnHeightValue .setText(screenshotsColumnHeight.getSelection() + settings.msg("dialog.settings.px")); columnHeightValue.pack(); } }); columnHeightValue = new Label(screenshotsColumn, SWT.NONE); columnHeightValue.setText(screenshotsColumnHeight.getSelection() + settings.msg("dialog.settings.px")); final Label stretchLabel = new Label(screenshotsColumn, SWT.NONE); stretchLabel.setText(settings.msg("dialog.settings.screenshotscolumnstretch")); final Button stretch = new Button(screenshotsColumn, SWT.CHECK); stretch.setSelection(conf.getBooleanValue("gui", "screenshotscolumnstretch")); new Label(screenshotsColumn, SWT.NONE); final Label keepAspectRatioLabel = new Label(screenshotsColumn, SWT.NONE); keepAspectRatioLabel.setText(settings.msg("dialog.settings.screenshotscolumnkeepaspectratio")); final Button keepAspectRatio = new Button(screenshotsColumn, SWT.CHECK); keepAspectRatio.setSelection(conf.getBooleanValue("gui", "screenshotscolumnkeepaspectratio")); new Label(screenshotsColumn, SWT.NONE); keepAspectRatio.setEnabled(stretch.getSelection()); stretch.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { keepAspectRatio.setEnabled(stretch.getSelection()); } }); Group buttonsGroup = new Group(composite1, SWT.NONE); buttonsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); buttonsGroup.setLayout(new GridLayout(2, false)); buttonsGroup.setText(settings.msg("dialog.settings.buttons")); final Label buttonLabel = new Label(buttonsGroup, SWT.NONE); buttonLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); buttonLabel.setText(settings.msg("dialog.settings.display")); buttonDisplay = new Combo(buttonsGroup, SWT.READ_ONLY); buttonDisplay.setItems(buttonDisplayOptions); buttonDisplay.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); buttonDisplay.select(conf.getIntValue("gui", "buttondisplay")); final Group notesGroup = new Group(composite1, SWT.NONE); notesGroup.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); notesGroup.setLayout(new GridLayout(2, false)); notesGroup.setText(settings.msg("dialog.profile.notes")); final Label fontLabel = new Label(notesGroup, SWT.NONE); fontLabel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); fontLabel.setText(settings.msg("dialog.settings.font")); final Button fontButton = new Button(notesGroup, SWT.PUSH); fontButton.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); Font f = GeneralPurposeGUI.stringToFont(shell.getDisplay(), port.getFont(), conf.getValues("gui", "notesfont")); fontButton.setText(f.getFontData()[0].getName()); fontButton.setFont(f); fontButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(SelectionEvent e) { FontDialog fd = new FontDialog(shell, SWT.NONE); fd.setFontList(fontButton.getFont().getFontData()); FontData newFont = fd.open(); if (newFont != null) { fontButton.setText(newFont.getName()); fontButton.setFont(new Font(shell.getDisplay(), newFont)); notesGroup.setSize(notesGroup.computeSize(SWT.DEFAULT, SWT.DEFAULT)); composite1.layout(); } } }); final TabItem enginesTabItem = new TabItem(tabFolder, SWT.NONE); enginesTabItem.setText(settings.msg("dialog.settings.tab.engines")); Composite compositeHoldingSubTabs = new Composite(tabFolder, SWT.NONE); compositeHoldingSubTabs.setLayout(new FillLayout()); enginesTabItem.setControl(compositeHoldingSubTabs); final TabFolder enginesTabFolder = new TabFolder(compositeHoldingSubTabs, SWT.NONE); setTitle = new Button[NR_OF_ENGINES]; setDev = new Button[NR_OF_ENGINES]; setPub = new Button[NR_OF_ENGINES]; setYear = new Button[NR_OF_ENGINES]; setGenre = new Button[NR_OF_ENGINES]; setLink = new Button[NR_OF_ENGINES]; setRank = new Button[NR_OF_ENGINES]; setDescr = new Button[NR_OF_ENGINES]; allRegionsCoverArt = new Button[NR_OF_ENGINES]; chooseCoverArt = new Button[NR_OF_ENGINES]; chooseScreenshot = new Button[NR_OF_ENGINES]; maxCoverArt = new Spinner[NR_OF_ENGINES]; maxScreenshots = new Spinner[NR_OF_ENGINES]; platformFilterValues = new Text[NR_OF_ENGINES]; for (int i = 0; i < NR_OF_ENGINES; i++) { WebSearchEngine engine = EditProfileDialog.webSearchEngines.get(i); final TabItem engineTabItem = new TabItem(enginesTabFolder, SWT.NONE); engineTabItem.setText(settings.msg("dialog.settings.tab." + engine.getSimpleName())); Composite composite3 = new Composite(enginesTabFolder, SWT.NONE); composite3.setLayout(new GridLayout(1, true)); engineTabItem.setControl(composite3); Group consult = new Group(composite3, SWT.NONE); consult.setLayout(new GridLayout(2, false)); GridData consultLData = new GridData(); consultLData.grabExcessHorizontalSpace = true; consultLData.horizontalAlignment = GridData.FILL; consultLData.grabExcessVerticalSpace = true; consultLData.verticalAlignment = GridData.FILL; consult.setLayoutData(consultLData); consult.setText(settings.msg("dialog.settings.consult", new String[] { engine.getName() })); Label titleLabel = new Label(consult, SWT.NONE); titleLabel.setText(settings.msg("dialog.settings.settitle")); setTitle[i] = new Button(consult, SWT.CHECK); setTitle[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_title")); Label devLabel = new Label(consult, SWT.NONE); devLabel.setText(settings.msg("dialog.settings.setdeveloper")); setDev[i] = new Button(consult, SWT.CHECK); setDev[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_developer")); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud") || engine.getSimpleName().equals("thegamesdb")) { Label pubLabel = new Label(consult, SWT.NONE); pubLabel.setText(settings.msg("dialog.settings.setpublisher")); setPub[i] = new Button(consult, SWT.CHECK); setPub[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_publisher")); } Label yearLabel = new Label(consult, SWT.NONE); yearLabel.setText(settings.msg("dialog.settings.setyear")); setYear[i] = new Button(consult, SWT.CHECK); setYear[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_year")); Label genreLabel = new Label(consult, SWT.NONE); genreLabel.setText(settings.msg("dialog.settings.setgenre")); setGenre[i] = new Button(consult, SWT.CHECK); setGenre[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_genre")); Label linkLabel = new Label(consult, SWT.NONE); linkLabel.setText(settings.msg("dialog.settings.setlink", new String[] { engine.getName() })); setLink[i] = new Button(consult, SWT.CHECK); setLink[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_link")); Label rankLabel = new Label(consult, SWT.NONE); rankLabel.setText(settings.msg("dialog.settings.setrank", new Object[] { MainWindow.columnNames[Constants.RO_COLUMN_NAMES + 8] })); setRank[i] = new Button(consult, SWT.CHECK); setRank[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_rank")); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud") || engine.getSimpleName().equals("thegamesdb")) { Label descrLabel = new Label(consult, SWT.NONE); descrLabel.setText(settings.msg("dialog.settings.setdescription")); setDescr[i] = new Button(consult, SWT.CHECK); setDescr[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "set_description")); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) { Label chooseCoverArtLabel = new Label(consult, SWT.NONE); chooseCoverArtLabel.setText(settings.msg("dialog.settings.choosecoverart")); Composite comp = new Composite(consult, SWT.NONE); GridLayout layout = new GridLayout(3, false); layout.marginWidth = 0; comp.setLayout(layout); chooseCoverArt[i] = new Button(comp, SWT.CHECK); chooseCoverArt[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "choose_coverart")); if (engine.getSimpleName().equals("mobygames")) { Label allRegionsCoverArtLabel = new Label(comp, SWT.NONE); allRegionsCoverArtLabel.setText(settings.msg("dialog.settings.allregionscoverart")); GridData gd = new GridData(); gd.horizontalIndent = 40; allRegionsCoverArtLabel.setLayoutData(gd); allRegionsCoverArt[i] = new Button(comp, SWT.CHECK); allRegionsCoverArt[i].setSelection( conf.getBooleanValue(engine.getSimpleName(), "force_all_regions_coverart")); } } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet") || engine.getSimpleName().equals("thegamesdb")) { Label chooseScreenshotLabel = new Label(consult, SWT.NONE); chooseScreenshotLabel.setText(settings.msg("dialog.settings.choosescreenshot")); chooseScreenshot[i] = new Button(consult, SWT.CHECK); chooseScreenshot[i].setSelection(conf.getBooleanValue(engine.getSimpleName(), "choose_screenshot")); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) { final Label maxCoverArtLabel = new Label(consult, SWT.NONE); maxCoverArtLabel.setText(settings.msg("dialog.settings.multieditmaxcoverart")); maxCoverArt[i] = new Spinner(consult, SWT.BORDER); maxCoverArt[i].setLayoutData(new GridData(100, SWT.DEFAULT)); maxCoverArt[i].setMinimum(0); maxCoverArt[i].setMaximum(Integer.MAX_VALUE); maxCoverArt[i].setSelection(conf.getIntValue(engine.getSimpleName(), "multi_max_coverart")); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet") || engine.getSimpleName().equals("thegamesdb")) { final Label maxScreenshotsLabel = new Label(consult, SWT.NONE); maxScreenshotsLabel.setText(settings.msg("dialog.settings.multieditmaxscreenshot")); maxScreenshots[i] = new Spinner(consult, SWT.BORDER); maxScreenshots[i].setLayoutData(new GridData(100, SWT.DEFAULT)); maxScreenshots[i].setMinimum(0); maxScreenshots[i].setMaximum(Integer.MAX_VALUE); maxScreenshots[i].setSelection(conf.getIntValue(engine.getSimpleName(), "multi_max_screenshot")); } Label filterLabel = new Label(consult, SWT.NONE); filterLabel.setText(settings.msg("dialog.settings.platformfilter")); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")) { platformFilterValues[i] = new Text(consult, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); platformFilterValues[i].setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); platformFilterValues[i].setText(conf.getMultilineValues(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getLineDelimiter())); } else { platformFilterValues[i] = new Text(consult, SWT.BORDER); platformFilterValues[i].setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, false)); platformFilterValues[i].setText(conf.getValue(engine.getSimpleName(), "platform_filter")); } } final TabItem envTabItem = new TabItem(tabFolder, SWT.NONE); envTabItem.setText(settings.msg("dialog.settings.tab.environment")); Composite composite4 = new Composite(tabFolder, SWT.NONE); composite4.setLayout(new GridLayout(1, true)); envTabItem.setControl(composite4); Group envGroup = new Group(composite4, SWT.NONE); envGroup.setLayout(new GridLayout(2, false)); GridData envLData = new GridData(); envLData.grabExcessHorizontalSpace = true; envLData.horizontalAlignment = GridData.FILL; envLData.grabExcessVerticalSpace = true; envLData.verticalAlignment = GridData.FILL; envGroup.setLayoutData(envLData); envGroup.setText(settings.msg("dialog.settings.environment")); Label enableEnvLabel = new Label(envGroup, SWT.NONE); enableEnvLabel.setText(settings.msg("dialog.settings.enableenvironment")); final Button enableEnv = new Button(envGroup, SWT.CHECK); enableEnv.setSelection(conf.getBooleanValue("environment", "use")); enableEnv.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { envValues.setEnabled(enableEnv.getSelection()); } }); Label envLabel = new Label(envGroup, SWT.NONE); envLabel.setText(settings.msg("dialog.settings.environmentvariables")); envValues = new Text(envGroup, SWT.V_SCROLL | SWT.MULTI | SWT.BORDER | SWT.H_SCROLL); envValues.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); envValues.setText(conf.getMultilineValues("environment", "value", envValues.getLineDelimiter())); envValues.setEnabled(enableEnv.getSelection()); final Composite composite_7 = new Composite(shell, SWT.NONE); composite_7.setLayout(new GridLayout(2, true)); composite_7.setLayoutData(BorderLayout.SOUTH); final Button okButton = new Button(composite_7, SWT.NONE); okButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { if (!isValid()) { return; } changedVisColumns = haveColumnsBeenChanged(); if (changedVisColumns) updateColumnSettings(); conf.setBooleanValue("dosbox", "hideconsole", console.getSelection()); conf.setBooleanValue("communication", "port_enabled", portEnabled.getSelection()); conf.setValue("communication", "port", port.getText()); conf.setIntValue("profiledefaults", "confpath", confLocation.getSelectionIndex()); conf.setIntValue("profiledefaults", "conffile", confFilename.getSelectionIndex()); conf.setValue("locale", "language", locales.get(localeCombo.getText()).getLanguage()); conf.setValue("locale", "country", locales.get(localeCombo.getText()).getCountry()); conf.setValue("locale", "variant", locales.get(localeCombo.getText()).getVariant()); for (int i = 0; i < MainWindow.columnNames.length; i++) { conf.setBooleanValue("gui", "column" + (i + 1) + "visible", visibleColumns[allColumnIDs.indexOf(i)].getChecked()); } conf.setBooleanValue("gui", "autosortonupdate", autosort.getSelection()); for (int i = 0; i < Constants.EDIT_COLUMN_NAMES; i++) { conf.setValue("gui", "custom" + (i + 1), visibleColumns[allColumnIDs.indexOf(i + Constants.RO_COLUMN_NAMES)].getText()); } conf.setIntValue("gui", "screenshotsheight", screenshotsHeight.getSelection()); conf.setBooleanValue("gui", "screenshotsfilename", displayFilename.getSelection()); conf.setIntValue("gui", "screenshotscolumnheight", screenshotsColumnHeight.getSelection()); conf.setBooleanValue("gui", "screenshotscolumnstretch", stretch.getSelection()); conf.setBooleanValue("gui", "screenshotscolumnkeepaspectratio", keepAspectRatio.getSelection()); Rectangle rec = shell.getBounds(); conf.setIntValue("gui", "settingsdialog_width", rec.width); conf.setIntValue("gui", "settingsdialog_height", rec.height); conf.setIntValue("gui", "buttondisplay", buttonDisplay.getSelectionIndex()); conf.setMultilineValues("gui", "notesfont", GeneralPurposeGUI.fontToString(shell.getDisplay(), fontButton.getFont()), "|"); for (int i = 0; i < NR_OF_ENGINES; i++) { WebSearchEngine engine = EditProfileDialog.webSearchEngines.get(i); conf.setBooleanValue(engine.getSimpleName(), "set_title", setTitle[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_developer", setDev[i].getSelection()); if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("hotud") || engine.getSimpleName().equals("thegamesdb")) { conf.setBooleanValue(engine.getSimpleName(), "set_publisher", setPub[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_description", setDescr[i].getSelection()); } conf.setBooleanValue(engine.getSimpleName(), "set_year", setYear[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_genre", setGenre[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_link", setLink[i].getSelection()); conf.setBooleanValue(engine.getSimpleName(), "set_rank", setRank[i].getSelection()); if (engine.getSimpleName().equals("mobygames")) { conf.setBooleanValue(engine.getSimpleName(), "force_all_regions_coverart", allRegionsCoverArt[i].getSelection()); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("thegamesdb")) { conf.setBooleanValue(engine.getSimpleName(), "choose_coverart", chooseCoverArt[i].getSelection()); conf.setIntValue(engine.getSimpleName(), "multi_max_coverart", maxCoverArt[i].getSelection()); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet") || engine.getSimpleName().equals("thegamesdb")) { conf.setBooleanValue(engine.getSimpleName(), "choose_screenshot", chooseScreenshot[i].getSelection()); conf.setIntValue(engine.getSimpleName(), "multi_max_screenshot", maxScreenshots[i].getSelection()); } if (engine.getSimpleName().equals("mobygames") || engine.getSimpleName().equals("pouet")) { conf.setMultilineValues(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getText(), platformFilterValues[i].getLineDelimiter()); } else { conf.setValue(engine.getSimpleName(), "platform_filter", platformFilterValues[i].getText()); } } conf.setBooleanValue("environment", "use", enableEnv.getSelection()); conf.setMultilineValues("environment", "value", envValues.getText(), envValues.getLineDelimiter()); storeValues(); settings.getSettings().injectValuesFrom(conf); shell.close(); } private boolean haveColumnsBeenChanged() { for (int i = 0; i < MainWindow.columnNames.length; i++) if ((conf.getBooleanValue("gui", "column" + (allColumnIDs.get(i) + 1) + "visible") != visibleColumns[i].getChecked()) || !MainWindow.columnNames[allColumnIDs.get(i)].equals(visibleColumns[i].getText())) return true; return false; } }); shell.setDefaultButton(okButton); okButton.setText(settings.msg("button.ok")); final Button cancelButton = new Button(composite_7, SWT.NONE); cancelButton.setText(settings.msg("button.cancel")); cancelButton.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent event) { shell.close(); } }); final GridData gridData = new GridData(); gridData.horizontalAlignment = SWT.FILL; gridData.widthHint = GeneralPurposeGUI.getWidth(okButton, cancelButton); okButton.setLayoutData(gridData); cancelButton.setLayoutData(gridData); }
From source file:org.apache.accumulo.tserver.tablet.Tablet.java
public TreeMap<KeyExtent, TabletData> split(byte[] sp) throws IOException { if (sp != null && extent.getEndRow() != null && extent.getEndRow().equals(new Text(sp))) { throw new IllegalArgumentException(); }//ww w. j av a 2 s . c om if (sp != null && sp.length > tableConfiguration.getMemoryInBytes(Property.TABLE_MAX_END_ROW_SIZE)) { String msg = "Cannot split tablet " + extent + ", selected split point too long. Length : " + sp.length; log.warn(msg); throw new IOException(msg); } if (extent.isRootTablet()) { String msg = "Cannot split root tablet"; log.warn(msg); throw new RuntimeException(msg); } try { initiateClose(true, false, false); } catch (IllegalStateException ise) { log.debug("File " + extent + " not splitting : " + ise.getMessage()); return null; } // obtain this info outside of synch block since it will involve opening // the map files... it is ok if the set of map files changes, because // this info is used for optimization... it is ok if map files are missing // from the set... can still query and insert into the tablet while this // map file operation is happening Map<FileRef, FileUtil.FileInfo> firstAndLastRows = FileUtil.tryToGetFirstAndLastRows( getTabletServer().getFileSystem(), getTabletServer().getConfiguration(), getDatafileManager().getFiles()); synchronized (this) { // java needs tuples ... TreeMap<KeyExtent, TabletData> newTablets = new TreeMap<KeyExtent, TabletData>(); long t1 = System.currentTimeMillis(); // choose a split point SplitRowSpec splitPoint; if (sp == null) splitPoint = findSplitRow(getDatafileManager().getFiles()); else { Text tsp = new Text(sp); splitPoint = new SplitRowSpec(FileUtil.estimatePercentageLTE(getTabletServer().getFileSystem(), getTabletServer().getConfiguration(), extent.getPrevEndRow(), extent.getEndRow(), FileUtil.toPathStrings(getDatafileManager().getFiles()), tsp), tsp); } if (splitPoint == null || splitPoint.row == null) { log.info("had to abort split because splitRow was null"); closeState = CloseState.OPEN; return null; } closeState = CloseState.CLOSING; completeClose(true, false); Text midRow = splitPoint.row; double splitRatio = splitPoint.splitRatio; KeyExtent low = new KeyExtent(extent.getTableId(), midRow, extent.getPrevEndRow()); KeyExtent high = new KeyExtent(extent.getTableId(), extent.getEndRow(), midRow); String lowDirectory = createTabletDirectory(getTabletServer().getFileSystem(), extent.getTableId(), midRow); // write new tablet information to MetadataTable SortedMap<FileRef, DataFileValue> lowDatafileSizes = new TreeMap<FileRef, DataFileValue>(); SortedMap<FileRef, DataFileValue> highDatafileSizes = new TreeMap<FileRef, DataFileValue>(); List<FileRef> highDatafilesToRemove = new ArrayList<FileRef>(); MetadataTableUtil.splitDatafiles(extent.getTableId(), midRow, splitRatio, firstAndLastRows, getDatafileManager().getDatafileSizes(), lowDatafileSizes, highDatafileSizes, highDatafilesToRemove); log.debug("Files for low split " + low + " " + lowDatafileSizes.keySet()); log.debug("Files for high split " + high + " " + highDatafileSizes.keySet()); String time = tabletTime.getMetadataValue(); MetadataTableUtil.splitTablet(high, extent.getPrevEndRow(), splitRatio, getTabletServer(), getTabletServer().getLock()); MasterMetadataUtil.addNewTablet(getTabletServer(), low, lowDirectory, getTabletServer().getTabletSession(), lowDatafileSizes, getBulkIngestedFiles(), time, lastFlushID, lastCompactID, getTabletServer().getLock()); MetadataTableUtil.finishSplit(high, highDatafileSizes, highDatafilesToRemove, getTabletServer(), getTabletServer().getLock()); log.log(TLevel.TABLET_HIST, extent + " split " + low + " " + high); newTablets.put(high, new TabletData(tabletDirectory, highDatafileSizes, time, lastFlushID, lastCompactID, lastLocation, getBulkIngestedFiles())); newTablets.put(low, new TabletData(lowDirectory, lowDatafileSizes, time, lastFlushID, lastCompactID, lastLocation, getBulkIngestedFiles())); long t2 = System.currentTimeMillis(); log.debug(String.format("offline split time : %6.2f secs", (t2 - t1) / 1000.0)); closeState = CloseState.COMPLETE; return newTablets; } }
From source file:net.shipilev.fjptrace.tasks.PrintSummaryTask.java
@Override public void doWork() throws Exception { // walk the trees PrintWriter pw = new PrintWriter(fileName); LayerStatistics global = new LayerStatistics(); SortedMap<Integer, LayerStatistics> layerStats = new TreeMap<>(); for (Task t : subgraphs.getParents()) { // compute transitive closure Set<Task> visited = new HashSet<>(); Set<Long> workers = new HashSet<>(); List<Task> prev = new ArrayList<>(); List<Task> cur = new ArrayList<>(); int depth = 0; cur.add(t);/*from ww w. jav a2 s . c om*/ while (visited.addAll(cur)) { prev.clear(); prev.addAll(cur); cur.clear(); Set<Long> layerWorkers = new HashSet<>(); LayerStatistics layerStat = layerStats.get(depth); if (layerStat == null) { layerStat = new LayerStatistics(); layerStats.put(depth, layerStat); } for (Task c : prev) { Collection<Task> children = c.getChildren(); if (!children.isEmpty()) { cur.addAll(children); } layerStat.arities.addValue(children.size()); layerStat.selfTime.addValue(c.getSelfTime() / 1_000_000.0); layerStat.totalTime.addValue(c.getTotalTime() / 1_000_000.0); global.selfTime.addValue(c.getSelfTime() / 1_000_000.0); global.totalTime.addValue(c.getTotalTime() / 1_000_000.0); global.arities.addValue(children.size()); layerWorkers.add(c.getWorker()); } layerStat.counts.addValue(prev.size()); layerStat.threads.addValue(layerWorkers.size()); workers.addAll(layerWorkers); depth++; } global.depths.addValue(depth); global.counts.addValue(visited.size()); global.threads.addValue(workers.size()); } pw.println("Summary statistics:"); pw.printf(" total external tasks = %.0f\n", layerStats.get(0).counts.getSum()); pw.printf(" total subtasks = %.0f\n", global.counts.getSum()); pw.printf(" total threads = %.0f\n", global.threads.getMean()); pw.println(); pw.println("Per task statistics:"); pw.printf(" tasks: sum = %10.0f, min = %5.2f, avg = %5.2f, max = %5.2f\n", global.counts.getSum(), global.counts.getMin(), global.counts.getMean(), global.counts.getMax()); pw.printf(" depth: min = %5.2f, avg = %5.2f, max = %5.2f\n", global.depths.getMin(), global.depths.getMean(), global.depths.getMax()); pw.printf(" arity: min = %5.2f, avg = %5.2f, max = %5.2f\n", global.arities.getMin(), global.arities.getMean(), global.arities.getMax()); pw.printf(" threads: min = %5.2f, avg = %5.2f, max = %5.2f\n", global.threads.getMin(), global.threads.getMean(), global.threads.getMax()); pw.println(); pw.println("Per task + per depth statistics:"); for (Integer depth : layerStats.keySet()) { LayerStatistics s = layerStats.get(depth); pw.printf(" Depth = %d: \n", depth); pw.printf(" tasks: sum = %10.0f, min = %5.2f, avg = %5.2f, max = %5.2f\n", s.counts.getSum(), s.counts.getMin(), s.counts.getMean(), s.counts.getMax()); pw.printf(" self time (ms): sum = %10.0f, min = %5.2f, avg = %5.2f, max = %5.2f\n", s.selfTime.getSum(), s.selfTime.getMin(), s.selfTime.getMean(), s.selfTime.getMax()); pw.printf(" total time (ms): sum = %10.0f, min = %5.2f, avg = %5.2f, max = %5.2f\n", s.totalTime.getSum(), s.totalTime.getMin(), s.totalTime.getMean(), s.totalTime.getMax()); pw.printf(" arity: min = %5.2f, avg = %5.2f, max = %5.2f\n", s.arities.getMin(), s.arities.getMean(), s.arities.getMax()); pw.printf(" threads: min = %5.2f, avg = %5.2f, max = %5.2f\n", s.threads.getMin(), s.threads.getMean(), s.threads.getMax()); } summarizeEvents(pw, events); pw.flush(); pw.close(); }
From source file:com.google.gwt.emultest.java.util.TreeMapTest.java
public void testHeadMapLjava_lang_Object() { K[] keys = getSortedKeys();//from w w w .j a va2s . c om V[] values = getSortedValues(); NavigableMap<K, V> map = createNavigableMap(); for (int i = 0; i < keys.length; i++) { map.put(keys[i], values[i]); } Map<K, V> head = map.headMap(keys[3]); assertEquals(3, head.size()); assertTrue(head.containsKey(keys[0])); assertTrue(head.containsValue(values[1])); assertTrue(head.containsKey(keys[2])); if (useNullKey() && useNullValue()) { map.put(null, null); SortedMap<K, V> submap = map.headMap(null); assertEquals(0, submap.size()); Set<K> keySet = submap.keySet(); assertEquals(0, keySet.size()); Set<Map.Entry<K, V>> entrySet = submap.entrySet(); assertEquals(0, entrySet.size()); Collection<V> valueCollection = submap.values(); assertEquals(0, valueCollection.size()); map.remove(null); } SortedMap<K, V> submap = map.headMap(getLessThanMinimumKey()); assertEquals(submap.size(), 0); assertTrue(submap.isEmpty()); try { submap.firstKey(); fail("NoSuchElementException should be thrown"); } catch (NoSuchElementException expected) { } try { submap.lastKey(); fail("NoSuchElementException should be thrown"); } catch (NoSuchElementException expected) { } try { submap.headMap(null); assertTrue("expected exception", useNullKey()); } catch (NullPointerException e) { assertFalse("unexpected NPE", useNullKey()); } }
From source file:edu.cmu.tetrad.search.Lofs2.java
private void ruleR1(Graph skeleton, Graph graph, List<Node> nodes) { List<DataSet> centeredData = DataUtils.center(this.dataSets); setDataSets(centeredData);//from w w w.ja va 2 s.c om for (Node node : nodes) { SortedMap<Double, String> scoreReports = new TreeMap<Double, String>(); List<Node> adj = new ArrayList<Node>(); for (Node _node : skeleton.getAdjacentNodes(node)) { if (knowledge.isForbidden(_node.getName(), node.getName())) { continue; } adj.add(_node); } DepthChoiceGenerator gen = new DepthChoiceGenerator(adj.size(), adj.size()); int[] choice; double maxScore = Double.NEGATIVE_INFINITY; List<Node> parents = null; while ((choice = gen.next()) != null) { List<Node> _parents = GraphUtils.asList(choice, adj); double score = score(node, _parents); scoreReports.put(-score, _parents.toString()); if (score > maxScore) { maxScore = score; parents = _parents; } } double p = pValue(node, parents); if (p > alpha) { continue; } for (double score : scoreReports.keySet()) { TetradLogger.getInstance().log("score", "For " + node + " parents = " + scoreReports.get(score) + " score = " + -score); } TetradLogger.getInstance().log("score", ""); if (parents == null) { continue; } for (Node _node : adj) { if (parents.contains(_node)) { Edge parentEdge = Edges.directedEdge(_node, node); if (!graph.containsEdge(parentEdge)) { graph.addEdge(parentEdge); } } } } for (Edge edge : skeleton.getEdges()) { if (!graph.isAdjacentTo(edge.getNode1(), edge.getNode2())) { graph.addUndirectedEdge(edge.getNode1(), edge.getNode2()); } } }