📄 extractor.html
字号:
<FONT color="green">397</FONT> // extractLinks(documents, document, topics, pending, false);<a name="line.397"></a>
<FONT color="green">398</FONT> } else if (subject.endsWith(" method") && countOf(subject, ' ') == 1) {<a name="line.398"></a>
<FONT color="green">399</FONT> if (parent.length() != 0) {<a name="line.399"></a>
<FONT color="green">400</FONT> topic = (Topic) topics.get(parent);<a name="line.400"></a>
<FONT color="green">401</FONT> if (topic == null) {<a name="line.401"></a>
<FONT color="green">402</FONT> extractByIdOrContext(documents, topics, pending, parent, true);<a name="line.402"></a>
<FONT color="green">403</FONT> topic = (Topic) topics.get(parent);<a name="line.403"></a>
<FONT color="green">404</FONT> }<a name="line.404"></a>
<FONT color="green">405</FONT> }<a name="line.405"></a>
<FONT color="green">406</FONT> if (topic == null) {<a name="line.406"></a>
<FONT color="green">407</FONT> if (!quiet)<a name="line.407"></a>
<FONT color="green">408</FONT> System.err.println("Skipping a non-existing parent with subject '"<a name="line.408"></a>
<FONT color="green">409</FONT> + subject + "' and context '" + context + "'.");<a name="line.409"></a>
<FONT color="green">410</FONT> return;<a name="line.410"></a>
<FONT color="green">411</FONT> }<a name="line.411"></a>
<FONT color="green">412</FONT> String name = getFirstWord(subject);<a name="line.412"></a>
<FONT color="green">413</FONT> topics.put(context, new Topic(document.getUniversalID(), "method", name,<a name="line.413"></a>
<FONT color="green">414</FONT> topic));<a name="line.414"></a>
<FONT color="green">415</FONT> extractMethod(name, topic.type.equals("class") ? topic.name : "*", documents,<a name="line.415"></a>
<FONT color="green">416</FONT> document, topics, pending);<a name="line.416"></a>
<FONT color="green">417</FONT> // extractLinks(documents, document, topics, pending, false);<a name="line.417"></a>
<FONT color="green">418</FONT> } else if ((subject.startsWith("Examples: ") || subject.startsWith("Example: "))<a name="line.418"></a>
<FONT color="green">419</FONT> && (subject.endsWith(" class") || subject.endsWith(" property") || subject<a name="line.419"></a>
<FONT color="green">420</FONT> .endsWith(" method")) && countOf(subject, ' ') == 2) {<a name="line.420"></a>
<FONT color="green">421</FONT> if (parent.length() != 0) {<a name="line.421"></a>
<FONT color="green">422</FONT> topic = (Topic) topics.get(parent);<a name="line.422"></a>
<FONT color="green">423</FONT> if (topic == null) {<a name="line.423"></a>
<FONT color="green">424</FONT> extractByIdOrContext(documents, topics, pending, parent, true);<a name="line.424"></a>
<FONT color="green">425</FONT> topic = (Topic) topics.get(parent);<a name="line.425"></a>
<FONT color="green">426</FONT> }<a name="line.426"></a>
<FONT color="green">427</FONT> }<a name="line.427"></a>
<FONT color="green">428</FONT> if (topic == null) {<a name="line.428"></a>
<FONT color="green">429</FONT> if (!quiet)<a name="line.429"></a>
<FONT color="green">430</FONT> System.err.println("Skipping a non-existing parent with subject '"<a name="line.430"></a>
<FONT color="green">431</FONT> + subject + "' and context '" + context + "'.");<a name="line.431"></a>
<FONT color="green">432</FONT> return;<a name="line.432"></a>
<FONT color="green">433</FONT> }<a name="line.433"></a>
<FONT color="green">434</FONT> String type = getLastWord(subject);<a name="line.434"></a>
<FONT color="green">435</FONT> boolean member = !type.equals("class");<a name="line.435"></a>
<FONT color="green">436</FONT> if (member) {<a name="line.436"></a>
<FONT color="green">437</FONT> if (topic.parent == null) {<a name="line.437"></a>
<FONT color="green">438</FONT> if (!quiet)<a name="line.438"></a>
<FONT color="green">439</FONT> System.err<a name="line.439"></a>
<FONT color="green">440</FONT> .println("Skipping a non-existing parent class with subject '"<a name="line.440"></a>
<FONT color="green">441</FONT> + subject + "' and context '" + context + "'.");<a name="line.441"></a>
<FONT color="green">442</FONT> return;<a name="line.442"></a>
<FONT color="green">443</FONT> }<a name="line.443"></a>
<FONT color="green">444</FONT> topic = topic.parent;<a name="line.444"></a>
<FONT color="green">445</FONT> }<a name="line.445"></a>
<FONT color="green">446</FONT> String name = getSecondWord(subject);<a name="line.446"></a>
<FONT color="green">447</FONT> topics.put(context, new Topic(document.getUniversalID(), "example", name,<a name="line.447"></a>
<FONT color="green">448</FONT> topic));<a name="line.448"></a>
<FONT color="green">449</FONT> extractExample(name, subject, topic.name, member ? "member" : type,<a name="line.449"></a>
<FONT color="green">450</FONT> documents, document, topics, pending);<a name="line.450"></a>
<FONT color="green">451</FONT> // extractLinks(documents, document, topics, pending, false);<a name="line.451"></a>
<FONT color="green">452</FONT> } else if ((subject.startsWith("Examples: ") || subject.startsWith("Example: "))<a name="line.452"></a>
<FONT color="green">453</FONT> && subject.endsWith(" properties") && subject.indexOf(" and ") > 0) {<a name="line.453"></a>
<FONT color="green">454</FONT> if (parent.length() != 0) {<a name="line.454"></a>
<FONT color="green">455</FONT> topic = (Topic) topics.get(parent);<a name="line.455"></a>
<FONT color="green">456</FONT> if (topic == null) {<a name="line.456"></a>
<FONT color="green">457</FONT> extractByIdOrContext(documents, topics, pending, parent, true);<a name="line.457"></a>
<FONT color="green">458</FONT> topic = (Topic) topics.get(parent);<a name="line.458"></a>
<FONT color="green">459</FONT> }<a name="line.459"></a>
<FONT color="green">460</FONT> }<a name="line.460"></a>
<FONT color="green">461</FONT> if (topic == null) {<a name="line.461"></a>
<FONT color="green">462</FONT> if (!quiet)<a name="line.462"></a>
<FONT color="green">463</FONT> System.err.println("Skipping a non-existing parent with subject '"<a name="line.463"></a>
<FONT color="green">464</FONT> + subject + "' and context '" + context + "'.");<a name="line.464"></a>
<FONT color="green">465</FONT> return;<a name="line.465"></a>
<FONT color="green">466</FONT> }<a name="line.466"></a>
<FONT color="green">467</FONT> String id = document.getUniversalID();<a name="line.467"></a>
<FONT color="green">468</FONT> for (int i = 1, words = countOf(subject, ' '); i < words; ++i) {<a name="line.468"></a>
<FONT color="green">469</FONT> if (i == words - 2)<a name="line.469"></a>
<FONT color="green">470</FONT> continue;<a name="line.470"></a>
<FONT color="green">471</FONT> String name = getNthWord(subject, i);<a name="line.471"></a>
<FONT color="green">472</FONT> topics.put(context, new Topic(id, "example", name, topic));<a name="line.472"></a>
<FONT color="green">473</FONT> extractExample(name, subject, topic.name, "member", documents, document,<a name="line.473"></a>
<FONT color="green">474</FONT> topics, pending);<a name="line.474"></a>
<FONT color="green">475</FONT> }<a name="line.475"></a>
<FONT color="green">476</FONT> // extractLinks(documents, document, topics, pending, false);<a name="line.476"></a>
<FONT color="green">477</FONT> } else {<a name="line.477"></a>
<FONT color="green">478</FONT> if (force) {<a name="line.478"></a>
<FONT color="green">479</FONT> String name = generateName(context);<a name="line.479"></a>
<FONT color="green">480</FONT> topics.put(context, new Topic(document.getUniversalID(), "page", name,<a name="line.480"></a>
<FONT color="green">481</FONT> topic));<a name="line.481"></a>
<FONT color="green">482</FONT> extractPage(name, subject, documents, document, topics, pending,<a name="line.482"></a>
<FONT color="green">483</FONT> !fromJava);<a name="line.483"></a>
<FONT color="green">484</FONT> // extractLinks(documents, document, topics, pending, !fromJava);<a name="line.484"></a>
<FONT color="green">485</FONT> } else if (!quiet)<a name="line.485"></a>
<FONT color="green">486</FONT> System.err.println("Skipping subject '" + subject + "'.");<a name="line.486"></a>
<FONT color="green">487</FONT> }<a name="line.487"></a>
<FONT color="green">488</FONT> <a name="line.488"></a>
<FONT color="green">489</FONT> if (parent.length() != 0) {<a name="line.489"></a>
<FONT color="green">490</FONT> topic = (Topic) topics.get(parent);<a name="line.490"></a>
<FONT color="green">491</FONT> if (topic == null)<a name="line.491"></a>
<FONT color="green">492</FONT> pending.add(new Object[] { parent, new Boolean(!fromJava) });<a name="line.492"></a>
<FONT color="green">493</FONT> }<a name="line.493"></a>
<FONT color="green">494</FONT> }<a name="line.494"></a>
<FONT color="green">495</FONT> <a name="line.495"></a>
<FONT color="green">496</FONT> private void extract(Database database, HashMap topics) throws NotesException {<a name="line.496"></a>
<FONT color="green">497</FONT> DocumentCollection documents = null;<a name="line.497"></a>
<FONT color="green">498</FONT> Vector toRecycle = new Vector();<a name="line.498"></a>
<FONT color="green">499</FONT> try {<a name="line.499"></a>
<FONT color="green">500</FONT> documents = database.getAllDocuments();<a name="line.500"></a>
<FONT color="green">501</FONT> if (!quiet)<a name="line.501"></a>
<FONT color="green">502</FONT> System.err.println("Found " + documents.getCount() + " documents.");<a name="line.502"></a>
<FONT color="green">503</FONT> Document document = documents.getFirstDocument();<a name="line.503"></a>
<FONT color="green">504</FONT> HashMap documentsByIdOrContext = new HashMap();<a name="line.504"></a>
<FONT color="green">505</FONT> while (document != null) {<a name="line.505"></a>
<FONT color="green">506</FONT> toRecycle.addElement(document);<a name="line.506"></a>
<FONT color="green">507</FONT> String context = getStringValue(document, "Context");<a name="line.507"></a>
<FONT color="green">508</FONT> if (context.length() != 0) {<a name="line.508"></a>
<FONT color="green">509</FONT> documentsByIdOrContext.put(document.getUniversalID(), document);<a name="line.509"></a>
<FONT color="green">510</FONT> documentsByIdOrContext.put(context, document);<a name="line.510"></a>
<FONT color="green">511</FONT> }<a name="line.511"></a>
<FONT color="green">512</FONT> document = documents.getNextDocument();<a name="line.512"></a>
<FONT color="green">513</FONT> }<a name="line.513"></a>
<FONT color="green">514</FONT> <a name="line.514"></a>
<FONT color="green">515</FONT> if (verbose)<a name="line.515"></a>
<FONT color="green">516</FONT> System.err.println("Processing primary documents.");<a name="line.516"></a>
<FONT color="green">517</FONT> ArrayList pending = new ArrayList();<a name="line.517"></a>
<FONT color="green">518</FONT> for (int i = 0, size = toRecycle.size(); i < size; ++i)<a name="line.518"></a>
<FONT color="green">519</FONT> try {<a name="line.519"></a>
<FONT color="green">520</FONT> extract(documentsByIdOrContext, (Document) toRecycle.get(i), topics,<a name="line.520"></a>
<FONT color="green">521</FONT> pending, false);<a name="line.521"></a>
<FONT color="green">522</FONT> } catch (Exception exception) {<a name="line.522"></a>
<FONT color="green">523</FONT> exception.printStackTrace();<a name="line.523"></a>
<FONT color="green">524</FONT> }<a name="line.524"></a>
<FONT color="green">525</FONT> <a name="line.525"></a>
<FONT color="green">526</FONT> if (verbose)<a name="line.526"></a>
<FONT color="green">527</FONT> System.err.println("Processing secondary documents.");<a name="line.527"></a>
<FONT color="green">528</FONT> while (pending.size() != 0)<a name="line.528"></a>
<FONT color="green">529</FONT> try {<a name="line.529"></a>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -