<!-- Node: This document contains some parts taken from arch.xml formoduleo.openidex.searchwrittenbympetras@netbeans.org.
-->
&api-questions;
<!-- <questionid="arch-overall"when="init"> Describetheoverallarchitecture. <hint> WhatwillbeAPIfor <ahref="http://wiki.netbeans.org/API_Design#Separate_API_for_clients_from_support_API"> clientsandwhatsupportAPI</a>? Whatpartswillbepluggable? Howwillplug-insberegistered?Pleaseuse<code><apitype="export"/></code> todescribeyourgeneralAPIsandspecifytheir <ahref="http://wiki.netbeans.org/API_Stability#Private"> stabilitycategories</a>. Ifpossiblepleaseprovidesimplediagrams. </hint> </question>
-->
<answer id="arch-overall">
<p>
There are three goals:
</p>
<ul>
<li>
The module offers an SPI which can be used to make nodes
searchable by "Search in Projects" dialog, and to specify
how the nodes should be searched, and API which makes
implementation of the SPI easier.
</li>
<li>
There is also an SPI for custom search providers.
Search provider is an algorithm for searching and a set of
UI components for setting search options and displaying
results. Each provider is represented by a tab in "Search in
Projects" dialog. The SPI is accompanied by API for getting
info about search settings for nodes, for creating UI for
search dialog, and for communicating with
search results window.
</li>
<li>
Provide API for opening Find in Projects and Replace in Projects
dialogs and for starting search programatically.
</li>
</ul>
<p>
The module also contains UI for Find (Replace) in Projects dialog
and search results window, and implementation of default search
provider.
</p>
</answer>
<!-- <questionid="arch-quality"when="init"> Howwillthe<ahref="http://www.netbeans.org/community/guidelines/q-evangelism.html">quality</a> ofyourcodebetestedand howarefutureregressionsgoingtobeprevented? <hint> Whatkindoftestingdo youwanttouse?Howmuchfunctionality,inwhichareas, shouldbecoveredbythetests?Howyoufindoutthatyour projectwassuccessful? </hint> </question>
-->
<answer id="arch-quality">
<p>
There will be several tests for API classes, private helpers and
for private implementations of SPI classes. All test are JUnit unit
tests.
</p>
</answer>
<!-- <questionid="arch-time"when="init"> Whatarethetimeestimatesofthework? <hint> Pleaseexpressyourestimatesofhowlongthedesign,implementation, stabilizationarelikelytolast.Howmanypeoplewillbeneededto implementthisandwhatistheexpectedmilestonebywhichtheworkshouldbe ready? </hint> </question>
-->
<answer id="arch-time">
<p>
The work is almost complete. Several test has to be written
and completed. SPI and API for search scopes may be needed in the
future. The API can be finished in a few days. Search control needs
to be implemented.
</p>
</answer>
<!-- <questionid="arch-usecases"when="init"> <hint> Contentofthisanswerwillbedisplayedaspartofpageat http://www.netbeans.org/download/dev/javadoc/usecases.html Youcanusetags<usecasename="name>regularhtmldescription</usecase> andifyouwanttouseanURLyoucanprefixifwith@TOP@tobegin attherootofyourjavadoc </hint> Describethemain<ahref="http://wiki.netbeans.org/API_Design#The_Importance_of_Being_Use_Case_Oriented"> usecases</a>ofthenewAPI.Whowilluseitunder whatcircumstances?Whatkindofcodewouldtypicallyneedtobewritten tousethemodule? </question>
-->
<answer id="arch-usecases">
<usecase id="searchHistory" name="Search History">
<p>
<code><a href="@TOP@/org/netbeans/api/search/SearchHistory.html">SearchHistory</a></code>
is synchronising history content through netbeans modules and it saves history to preferences.
</p>
<p>
There are two separate histories. One for search and another for replace.
When you add your propertyListener to
<code><a href="@TOP@/org/netbeans/api/search/SearchHistory.html">SearchHistory</a></code>
- you can listen for changes in histories.
</p>
<p>
<code><a href="@TOP@/org/netbeans/api/search/SearchHistory.html">SearchHistory</a></code>
has methods for adding new entries and getting whole history list.
</p>
</usecase>
<usecase id="searchInfo" name="SearchInfo API & SPI">
<p>
This use-case was formerly covered by module
org.openidex.search.
</p>
<p>
The SearchInfo API+SPI allows other modules to specify whether
and how should nodes they define be searched.
</p>
<p>
The definition is represented by objects extending class
<code>
<a href="@TOP@/org/netbeans/spi/search/SearchInfoDefinition.html">
SearchInfoDefinition</a>
</code>. To customize searching on a custom node, a
<code>SearchInfoDefinition</code> object must be added to the node's lookup.
In most cases, there is no need to define own class extending the
class - one can use factory methods of class
<code>
<a href="@TOP@/org/netbeans/spi/search/SearchInfoDefinitionFactory.html">
SearchInfoDefinitionFactory</a>
</code>.
</p>
<p>
In some cases implementators may need to apply the same set
of SearchFilterDefinitions in the whole subtree of a node.
If so, it is not needed to put <code>SearchInfoDefinition</code> to all
nodes' lookups, but only one instance of <code>
<a href="@TOP@/org/netbeans/spi/search/SubTreeSearchOptions.html">
SubTreeSearchOptions</a>
</code> have to be put into the lookup of the root node.
</p>
<api group="java"
name="SearchInfoSPI" type="export"
category="stable" url="@TOP@org/netbeans/spi/search/package-summary.html">
Defines abstract classes
<code><a href="@TOP@/org/netbeans/spi/search/SearchInfoDefinition.html">SearchInfoDefinition</a></code>,
<code><a href="@TOP@/org/netbeans/spi/search/SearchFilterDefinition.html">SearchFilterDefinition</a></code>,
<code><a href="@TOP@/org/netbeans/spi/search/SubTreeSearchOptions.html">SubTreeSearchOptions</a></code>
and a factory class
<code><a href="@TOP@/org/netbeans/spi/search/SearchInfoDefinitionFactory.html">SearchInfoDefinitionFactory</a></code>
</api>
</usecase>
<usecase id="SearchProvider" name="Enhance IDE searching features">
<p>
People that want to enhance IDE searching features (with custom
search criteria or specialized algorithms) can add a new tab to
the "Search in Projects" dialog.
</p>
<p>
They need to implement several classes:
</p>
<ul>
<li>
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchProvider.html">SearchProvider</a></code>
to register the new search feature to the IDE or platform application.
</li>
<li>
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchProvider.Presenter.html">SearchProvider.Presenter</a></code>
that creates visual component for adding to the search dialog and that can interact with dialog buttons.
</li>
<li>
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchResultsDisplayer.html">SearchResultsDisplayer</a></code>
to show search results to the user.
</li>
<li>
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchComposition.html">SearchComposition</a></code>
that encapsulates setting and state of searches, provide access to result displayer, and is able to start
and terminate the search.
</li>
</ul>
<api group="java"
name="SearchProviderSPI" type="export"
category="stable" url="@TOP@org/netbeans/spi/search/provider/package-summary.html">
Defines abstract classes that need to be implemented when
creating custom providers:
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchProvider.html">SearchProvider</a></code>,
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchProvider.Presenter.html">SearchProvider.Presenter</a></code>,
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchResultsDisplayer.html">SearchResultsDisplayer</a></code>,
<code><a href="@TOP@/org/netbeans/spi/search/provider/SearchComposition.html">SearchComposition</a></code>
and relative classes.
</api>
<api group="java"
name="SearchProviderAPI" type="export"
category="stable" url="@TOP@org/netbeans/api/search/provider/package-summary.html">
Classes usually used by search providers.
Contains class <code><a href="@TOP@/org/netbeans/api/search/provider/SearchInfo.html">SearchInfo</a></code>,
that defines which files should be searched (it can be retrieved from methods in
<code><a href="@TOP@/org/netbeans/api/search/provider/SearchInfoUtils.html">SearchInfoUtils</a></code>,
or UI component controller <code><a href="@TOP@/org/netbeans/api/search/ui/ScopeController.html">ScopeController</a></code>),
<code><a href="@TOP@/org/netbeans/api/search/provider/SearchListener.html">SearchListener</a></code>
that you should inform about events that happen during searching, and helper classes
<code><a href="@TOP@/org/netbeans/api/search/provider/SearchInfoUtils.html">SearchInfoUtils</a></code>
(getting SearchInfo objects for nodes) and
<code><a href="@TOP@/org/netbeans/api/search/provider/FileNameMatcher.html">FileNameMatcher</a></code>
(filtering files by file name).
</api>
<api group="java"
name="SearchProviderUIAPI" type="export"
category="stable" url="@TOP@org/netbeans/api/search/ui/package-summary.html">
Several UI components that can be used in presenters of search
providers, and factory method for creating them.
</api>
</usecase>
<usecase id="SearchAPI" name="Search in Projects API">
<p>
This API enables other modules to open Find in Projects dialog
with some pre-defined criteria and to start searching
programatically.
</p>
<api group="java"
name="SearchAPI" type="export"
category="stable" url="@TOP@org/netbeans/api/search/package-summary.html">
Contains classes for controlling search, passing search
criteria, and some helper classes.
</api>
</usecase>
</answer>
<!-- <questionid="arch-what"when="init"> Whatisthisprojectgoodfor? <hint> Pleaseprovidehereafewlinesdescribingtheproject, whatproblemitshouldsolve,providelinkstodocumentation, specifications,etc. </hint> </question>
-->
<answer id="arch-what">
<p>
This project is good for implementators of nodes to define how files
under this node should be searched. For example, if you implement a
custom project type, you can define which folders should be searched
when the project is in the current search scope.
</p>
<p>
It is also good for people who want to add a custom tab into the "Search in projects" dialog. For example, implementators of platform
applications can add form with criteria for searching in a database.
</p>
</answer>
<!-- <questionid="compat-deprecation"when="init"> Howtheintroductionofyourprojectinfluencesfunctionality providedbypreviousversionoftheproduct? <hint> Ifyouareplanningtodeprecate/remove/changeanyexistingAPIs, listthemhereaccompaniedwiththereasonexplainingwhyyou aredoingso. </hint> </question>
-->
<answer id="compat-deprecation">
<p>
This API deprecates module org.openidex.search.
</p>
<p>
The original API did not support custom search providers and caused
some performance problems (now it is possible to pass search
options to search iterator, but all files had to be iterated over in
the old API). It is also possible to get list of root folder of the
search scope, which can be used by alternative search providers.
</p>
</answer>
<!-- <questionid="compat-standards"when="init"> Doesthemoduleimplementordefineanystandards?Isthe implementationexactordoesitdeviatesomehow? </question>
-->
<answer id="compat-standards">
<p>
The module does not implement any standards.
</p>
</answer>
<!-- <questionid="compat-version"when="impl"> Canyourmodulecoexistwithearlierandfuture versionsofitself?Canyoucorrectlyreadalloldsettings?Willfuture versionsbeabletoreadyourcurrentsettings?Canyouread orpolitelyignoresettingsstoredbyafutureversion? <hint> Veryhelpfulforreadingsettingsistostoreversionnumber there,sofutureversionscandecidewhetherhowtoread/convert thesettingsandolderversionscanignorethenewones. </hint> </question>
-->
<answer id="compat-version">
<p>
Only history of search patterns and search scope options is
persisted. Stored data are not critical.
</p>
</answer>
<!-- <questionid="dep-non-nb"when="init"> WhatotherprojectsoutsideNetBeansdoesthisonedependon? <hint> Dependingon3rdpartylibrariesisalwaysproblematic, especiallyiftheyarenotopensource,asthatcomplicates thelicensingschemeofNetBeans.Pleaseenumerateyour externaldependencieshere,soitiscorrectlyunderstoodsince thebeginingwhatarethelegalimplicationsofyourproject. Alsopleasenotethat somenon-NetBeansprojectsarepackagedasNetBeansmodules (see<ahref="http://libs.netbeans.org/">libraries</a>)and itispreferredtousethisapproachwhenmoremodulesmay dependandsharesuchthird-partylibraries. </hint> </question>
-->
<answer id="dep-non-nb">
<p>
There are no such dependencies.
</p>
</answer>
<!-- <questionid="dep-platform"when="init"> Onwhichplatformsdoesyourmodulerun?Doesitruninthesame wayoneach? <hint> IfyouplananydependencyonOSoranyusageofnativecode, pleasedescribewhyyouaredoingsoanddescribehowyouenvision toenforcetheportabilityofyourcode. Pleasenotethatthereisasupportfor<ahref="http://www.netbeans.org/download/dev/javadoc/org-openide-modules/org/openide/modules/doc-files/api.html#how-os-specific">OSconditionally enabledmodules</a>whichtogetherwithautoload/eagermodules canallowyoutoenabletoprovidethebestOSawaresupport oncertainOSeswhileprovidingcompatibilitybridgeonthenot supportedones. Alsopleaselistthesupported OSes/HWplatformsandmentionedthelovestversionofJDKrequired foryourprojecttorunon.AlsostatewhetherJREisenoughor youreallyneedJDK. </hint> </question>
-->
<answer id="dep-platform">
<p>
It runs on all platforms with a JRE 1.4+.
It runs in the same way on each.
</p>
</answer>
<!-- <questionid="deploy-dependencies"when="final"> Whatdoothermodulesneedtodotodeclareadependencyonthisone, inadditiontoorinsteadofthenormalmoduledependencydeclaration (e.g.tokenstorequire)? <hint> Provideasampleoftheactuallinesyouwouldaddtoamodulemanifest todeclareadependency,forexampleOpenIDE-Module-Requires:some.token. Ifothermodulesshouldnotdependonthismodule,orshouldjustusea simpleregularmoduledependency,youcanjustanswer"nothing".Ifyou intentionallyexposeasemistableAPItoclientsusingimplementation dependencies,youshouldmentionthathere(butthereisnoneedtogive anexampleofusage). </hint> </question>
-->
<answer id="deploy-dependencies">
<p>
No extra declaration is required.
</p>
</answer>
<!-- <questionid="deploy-nbm"when="impl"> CanyoudeployanNBMviatheUpdateCenter? <hint> Ifnotwhy? </hint> </question>
-->
<answer id="deploy-nbm">
<p>
XXX no answer for deploy-nbm
</p>
</answer>
<!-- <questionid="deploy-packages"when="init"> Arepackagesofyourmodulemadeinaccessiblebynotdeclaringthem public? <hint> BydefaultNetBeansbuildharnesstreatsallpackagesareprivate. Ifyouexportsomeofthem-eitheraspublicorfriendpackages, youshouldhaveareason.Ifthereasonisdescribedelsewhere inthisdocument,youcanignorethisquestion. </hint> </question>
-->
<answer id="deploy-packages">
<p>
Yes. There are some private packages with default implementation of
abstract classes and some helper classes.
Only API and SPI packages are public.
</p>
</answer>
<!-- <questionid="deploy-shared"when="final"> Doyouneedtobeinstalledinthesharedlocationonly,orintheuserdirectoryonly, orcanyourmodulebeinstalledanywhere? <hint> Installationlocationshallnotmatter,ifitdoesexplainwhy. Consideralsowhether<code>InstalledFileLocator</code>canhelp. </hint> </question>
-->
<answer id="deploy-shared">
<p>
Does not matter.
</p>
</answer>
<!-- <questionid="exec-introspection"when="impl"> Doesyourmoduleuseanykindofruntimetypeinformation(<code>instanceof</code>, workwith<code>java.lang.Class</code>,etc.)? <hint> CheckforcaseswhenyouhaveanobjectoftypeAandyoualso expectitto(possibly)beoftypeBanddosomespecialaction.That shouldbedocumented.Thesameappliesonoperationsinmeta-level (Class.isInstance(...),Class.isAssignableFrom(...),etc.). </hint> </question>
-->
<answer id="exec-introspection">
<p>
Operator instanceof is used only in equals method
of class SearchPattern.
</p>
</answer>
<!-- <questionid="exec-threading"when="init"> Whatthreadingmodels,ifany,doesyourmoduleadhereto?Howthe projectbehaveswithrespecttothreading? <hint> IsyourAPIthreadsafe?Canitbeaccessedfromanythreadsor justfromsomededicatedones?AnyspecialrelationtoAWTand itsEventDispatchthread?Also ifyourmodulecallsforeignAPIswhichhaveaspecificthreadingmodel, indicatehowyoucomplywiththerequirementsformultithreadedaccess (synchronization,mutexes,etc.)applicabletothoseAPIs. IfyourmoduledefinesanyAPIs,orhascomplexinternalstructures thatmightbeusedfrommultiplethreads,declarehowyouprotect dataagainstconcurrentaccess,raceconditions,deadlocks,etc., andwhethersuchrulesareenforcedbyruntimewarnings,errors,assertions,etc. Examples:aclassmightbenon-thread-safe(likeJavaCollections);might befullythread-safe(internallocking);mightrequireaccessthroughamutex (andmayormaynotautomaticallyacquirethatmutexonbehalfofaclientmethod); mightbeabletorunonlyintheeventqueue;etc. Alsodescribewhenanyeventsarefired:synchronously,asynchronously,etc. Ideas:<ahref="http://core.netbeans.org/proposals/threading/index.html#recommendations">ThreadingRecommendations</a>(inprogress) </hint> </question>
-->
<answer id="exec-threading">
<p>
Searches are performed in non-EDT threads. Interaction with EDT is
provided by AtomicBoolean objects for termination, SearchListener
for showing search progress and events, and SearchResultsDisplayer
for displaying search results.
</p>
</answer>
<!-- <questionid="format-clipboard"when="impl"> Whichdataflavors(ifany)doesyourcodereadfromorinsertto theclipboard(byaccesstoclipboardonmeanscallingmethodson<code>java.awt.datatransfer.Transferable</code>? <hint> OftenNode'sdealwithclipboardbyusageof<code>Node.clipboardCopy,Node.clipboardCutandNode.pasteTypes</code>. Checkyourcodeforoverridingthesemethods. </hint> </question>
-->
<answer id="format-clipboard">
<p>
No interaction with clipboard yet. This can change in the future if
search-related code from module utilities is moved to this module.
</p>
</answer>
<!-- <questionid="format-types"when="impl"> Whichprotocolsandfileformats(ifany)doesyourmodulereadorwriteondisk, ortransmitorreceiveoverthenetwork?Doyougenerateanantbuildscript? Canitbeeditedandmodified? <hint> <p> Filescanbereadandwrittenbyotherprograms,modulesandusers.Iftheyinfluence yourbehaviour,makesureyoueitherdocumenttheformatorclaimthatitisaprivate api(usingthe<api>tag). </p> <p> Ifyougenerateanantbuildfile,thisisverylikelygoingtobeseenbyendusersand theywillbeattemptedtoeditit.Youshouldbereadyforthatandprovideherealink todocumentationthatyouhaveforsuchpurposesandalsodescribehowyouaregoingto understandsuchfilesduringnextrelease,whenyou(verylikely)slightlychangethe format. </p> </hint> </question>
-->
<answer id="format-types">
<p>
Files are only traversed by SimpleSearchIterator. They can be read
by SearchProviders that check their contents.
</p>
</answer>
<!-- <questionid="lookup-lookup"when="init"> Doesyourmoduleuse<code>org.openide.util.Lookup</code> oranysimilartechnologytofindanycomponentstocommunicatewith?Whichones? <hint> NetBeansisbuildaroundagenericregistryofservicescalled lookup.Itispreferabletouseitforregistrationanddiscovery ifpossible.See <ahref="http://www.netbeans.org/download/dev/javadoc/org-openide-util/org/openide/util/lookup/doc-files/index.html"> TheSolutiontoComunicationBetweenComponents </a>.Ifyoudonotplantouselookupandinsistusage ofothersolution,thenpleasedescribewhyitisnotworkingfor you. <br/> Whenfillingthefinalversionofyourarchdocument,please describetheinterfacesyouaresearchingfor,where aredefined,whetheryouaresearchingforjustoneormoreofthem, iftheorderisimportant,etc.Alsoclassifythestabilityofsuch APIcontract.Use<apigroup=&lookup&/>tag,so yourinformationgetslistedinthesummarypageofyourjavadoc. </hint> </question>
-->
<answer id="lookup-lookup">
<p>
Lookup is used to find SearchInfoDefinition and SubTreeSearchOptions
instances in lookups of nodes, and to get registered SearchProvider
and SearchScopeDefinitionProvider instances in the default lookup.
</p>
</answer>
<!-- <questionid="perf-huge_dialogs"when="final"> Doesyourmodulecontainanydialogsorwizardswithalargenumberof GUIcontrolssuchascomboboxes,lists,trees,ortextareas? </question>
-->
<answer id="perf-huge_dialogs">
<p>
The module contains Find in Projects dialog and Search Results
Window.
</p>
</answer>
<!-- <questionid="perf-limit"when="init"> Arethereanyhard-codedorpracticallimitsinthenumberorsizeof elementsyourcodecanhandle? <hint> Mostofalgorithmshaveincreasingmemoryandspeedcomplexity withrespecttosizeofdatatheyoperateon.Whatisthecritical partofyourprojectthatcanbeseenasabottleneckwith respecttospeedorrequiredmemory?Whatarethepractical sizesofdatayoutestedyourprojectwith?Whatisyourestimate ofpotentialsizeofdatathatwouldcausevisibleperformance problems?Istheresomekindofchecktodetectsuchsituation andprevent"hard"crashes-forexampletheCloneableEditorSupport checksforsizeofafiletobeopenedineditor andifitislargerthan1Mbitshowsadialoggivingthe usertherighttodecide-e.g.tocancelorcommitsuicide. </hint> </question>
-->
<answer id="perf-limit">
<p>
Traversing a lot of files and directories can take a long time.
Finding a lot of matches can cause problems, but it should be
handled by search providers.
</p>
</answer>
<!-- <questionid="perf-mem"when="final"> Howmuchmemorydoesyourcomponentconsume?Estimate witharelationtothenumberofwindows,etc. </question>
-->
<answer id="perf-mem"> <!-- Taken from org.openidex.search. -->
<p>
Amount of memory consumed by implementations of class
<code>SearchInfoDefinition</code>, produced by class
<code>SearchInfoDefinitionFactory</code>,
is related to the maximum nesting level of folder/nodes
and to the maximum number of folders/nodes in each level.
Except for very extreme conditions, the amount of memory
is not essential.
Term "extreme conditions" comprises:
</p>
<ul>
<li>very deep hierarchy of nodes and very large number of nodes
in each level</li>
<li>very big amount (thousands and more) of nodes having defined
<code>SearchInfo</code> objects</li>
</ul>
<p>
Memory footprint of <code>SearchInfo</code> implementations returned by
factory class <code>SearchInfoFactory</code> is low. This may not be true
for custom plugged-in implementations.
</p>
</answer>
<!-- <questionid="perf-progress"when="final"> Doesyourmoduleexecuteanylong-runningtasks? <hint>Longrunningtasksshouldneverblock AWTthreadasitbadlyhurtstheUI <ahref="http://performance.netbeans.org/responsiveness/issues.html"> responsiveness</a>. Taskslikeconnectingover network,computinghugeamountofdata,compilation bedoneasynchronously(forexample using<code>RequestProcessor</code>),definitivelyitshould notblockAWTthread. </hint> </question>
-->
<answer id="perf-progress">
<p>
Searching for the next file in SimpleSearchIterator can take long
time, but this operation is invoked by search providers, not by code
in this module. There is an assertion for not being run in EDT in
the hasNext() method of that iterator.
</p>
</answer>
<!-- <questionid="perf-scale"when="init"> Whichexternalcriteriainfluencetheperformanceofyour program(sizeoffileineditor,numberoffilesinmenu, insourcedirectory,etc.)andhowwellyourcodescales? <hint> Pleaseincludesomeestimates,thereareothermoredetailed questionstoanswerinlaterphasesofimplementation. </hint> </question>
-->
<answer id="perf-scale">
<p>
The performance is influenced mainly by file system.
</p>
</answer>
<!-- <questionid="perf-spi"when="init"> Howtheperformanceofthepluggedincodewillbeenforced? <hint> Ifyouallowforeigncodetobepluggedintoyourownmodule,how doyouenforcethatitwillbehavecorrectlyandquicklyandwillnot negativelyinfluencetheperformanceofyourownmodule? </hint> </question>
-->
<answer id="perf-spi">
<p>
Only by notes in javadoc documentation for SearchFilterDefinition.
</p>
</answer>
<!-- <questionid="resources-file"when="final"> Doesyourmoduleuse<code>java.io.File</code>directly? <hint> NetBeansprovidealogicalwrapperoverplainfilescalled <code>org.openide.filesystems.FileObject</code>that providesuniformaccesstosuchresourcesandisthepreferred waythatshouldbeused.Butofcoursetherecanbesituationswhen thisisnotsuitable. </hint> </question>
-->
<answer id="resources-file">
<p>
Not currently, but it can be used later to improve performance.
</p>
</answer>
<!-- <questionid="resources-layer"when="final"> Doesyourmoduleprovideownlayer?Doesitcreateanyfilesor foldersinit?Whatitistryingtocommunicatebythatandwithwhich components? <hint> NetBeansallowsautomaticanddeclarativeinstallationofresources bymodulelayers.Moduleregisterfilesintoappropriateplaces andothercomponentsusethatinformationtoperformtheirtask (buildmenu,toolbar,windowlayout,listoftemplates,setof options,etc.). </hint> </question>
-->
<answer id="resources-layer">
<p>
No. But it can change if search-related code from utilities
is moved here.
</p>
</answer>
<!-- <questionid="resources-preferences"when="final"> DoesyourmoduleusespreferencesviaPreferencesAPI?DoesyourmoduleuseNbPreferencesor orregularJDKPreferences?Doesitread,writeorboth? Doesitsharepreferenceswithothermodules?Ifso,thenwhy? <hint> Youmayuse <apitype="export"group="preferences" name="preferencenodename"category="private"> descriptionofindividualkeys,whereitisused,whatit influences,whetherthemodulereads/writeit,etc. </api> DuetoXMLIDrestrictions,ratherthan/org/netbeans/modules/foogivethe"name"asorg.netbeans.modules.foo. NotethatifyouuseNbPreferencesthisnamewillthenbethesameasthecodenamebaseofthemodule. </hint> </question>
-->
<answer id="resources-preferences">
<p>
Regular JDK Preferences is used in SearchHistory to store history
info. It reads and writes it. It is not shared with other modules,
SearchInfo is public instead.
</p>
</answer>
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.54Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-09-29)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.