text:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.antlr</groupId>
    <artifactId>antlr3-maven-archetype</artifactId>
    <version>3.4</version>
    <packaging>maven-archetype</packaging>
    <name>ANTLR3 Maven Archetype 3.4</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--

    Inherit from the ANTLR master pom, which tells us what
    version we are and allows us to inherit dependencies
    and so on.

    Unfortunately, because of a bug in the archetype plugin
    we cannot use the parent pom because it causes the
    artifactId in the generated pom to be set to antlr3-maven-archetype
    We will reinstate this parent usage when that is fixed.

    <parent>
        <groupId>org.antlr</groupId>
        <artifactId>antlr-master</artifactId>
        <version>3.4</version>
    </parent>
    -->
    <!--
        The ANTLR Maven artifacts are now released via the Sonotype OSS
        repository, which means that they are synced to Maven central
        within a few minutes of hitting the release repo for Sonotype.
        To enable this, we inherit from the Sonotype provided parent
        pom. However, we must also configure our .m2/settings.xml to include
        the snapshot and staging server and the sonotype password. This
        means that only ANTLR developers can released the artifacts, but
        anyone can build locally.
      -->
    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>7</version>
    </parent>

    <profiles>
        <profile>
            <id>release-sign-artifacts</id>
            <activation>
                <property>
                    <name>deploy</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.3</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                   <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

  <build>

    <extensions>

      <extension>
        <groupId>org.apache.maven.archetype</groupId>
        <artifactId>archetype-packaging</artifactId>
        <version>2.0</version>
      </extension>

    </extensions>

        <plugins>

            <plugin>
                <artifactId>maven-archetype-plugin</artifactId>
                <version>2.0</version>
                <extensions>true</extensions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1.2</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

        </plugins>

  </build>

</project>

redpajama_set_name: RedPajamaGithub


text:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>org.apache.orc (ORC Shims 1.6.9 API)</title>
<meta name="date" content="2021-07-02">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">

org.apache.orc

Enums

EncryptionAlgorithm


text:
<?xml version="1.0" encoding="UTF-8" ?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
 contributor license agreements.  See the NOTICE file distributed with
 this work for additional information regarding copyright ownership.
 The ASF licenses this file to You under the Apache License, Version 2.0
 (the "License"); you may not use this file except in compliance with
 the License.  You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
 limitations under the License.
-->

<schema name="geometrixx-sample" version="1.5">

   <!-- If you remove this field, you must _also_ disable the update log in solrconfig.xml
      or Solr won't start. _version_ and update log are required for SolrCloud
   -->
   <field name="_version_" type="long" indexed="true" stored="true"/>

   <!-- Geometrixx Media fields-->
   <field name="author"              type="text_general"    indexed="true"  stored="true"/>
   <field name="body"                type="text_general"    indexed="true"  stored="true"/>
   <field name="crx_path"            type="descendent_path" indexed="true"  stored="true"/>
   <field name="description"         type="text_general"    indexed="true"  stored="true"/>
   <field name="keywords"            type="text_general"    indexed="true"  stored="true" multiValued="true"/>
   <field name="last_modified"       type="date"            indexed="true"  stored="true"/>
   <field name="teaser"              type="text_general"    indexed="true"  stored="true" multiValued="true"/>
   <field name="id"                  type="string"          indexed="true"  stored="true" multiValued="false" required="true"/>
   <field name="title"               type="text_general"    indexed="true"  stored="true"/>
   <field name="url"                 type="text_general"    indexed="true"  stored="true"/>
   <field name="publishDate"         type="tdate"           indexed="true"  stored="true"/>
   <field name="sling_resource_type" type="string"          indexed="true"  stored="true"  multiValued="true"/>
   <field name="tags"                type="text_general"    indexed="true"  stored="true"  multiValued="true"/>

    <!-- catchall field, containing all other searchable text fields (implemented
         via copyField further on in this schema  -->
   <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>

   <!-- catchall text field that indexes tokens both normally and in reverse for efficient
        leading wildcard queries. -->
   <field name="text_rev" type="text_general_rev" indexed="true" stored="false" multiValued="true"/>

   <field name="payloads" type="payloads" indexed="true" stored="true"/>

   <!-- Dynamic field definitions allow using convention over configuration
       for fields via the specification of patterns to match field names.
       EXAMPLE:  name="*_i" will match any field ending in _i (like myid_i, z_i)
       RESTRICTION: the glob-like pattern in the name attribute must have
       a "*" only at the start or the end.  -->

   <dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
   <dynamicField name="*_is" type="int"    indexed="true"  stored="true"  multiValued="true"/>
   <dynamicField name="*_s"  type="string"  indexed="true"  stored="true" />
   <dynamicField name="*_ss" type="string"  indexed="true"  stored="true" multiValued="true"/>
   <dynamicField name="*_l"  type="long"   indexed="true"  stored="true"/>
   <dynamicField name="*_ls" type="long"   indexed="true"  stored="true"  multiValued="true"/>
   <dynamicField name="*_t"  type="text_general"    indexed="true"  stored="true"/>
   <dynamicField name="*_txt" type="text_general"   indexed="true"  stored="true" multiValued="true"/>
   <dynamicField name="*_en"  type="text_en"    indexed="true"  stored="true" multiValued="true"/>
   <dynamicField name="*_b"  type="boolean" indexed="true" stored="true"/>
   <dynamicField name="*_bs" type="boolean" indexed="true" stored="true"  multiValued="true"/>
   <dynamicField name="*_f"  type="float"  indexed="true"  stored="true"/>
   <dynamicField name="*_fs" type="float"  indexed="true"  stored="true"  multiValued="true"/>
   <dynamicField name="*_d"  type="double" indexed="true"  stored="true"/>
   <dynamicField name="*_ds" type="double" indexed="true"  stored="true"  multiValued="true"/>

   <!-- Type used to index the lat and lon components for the "location" FieldType -->
   <dynamicField name="*_coordinate"  type="tdouble" indexed="true"  stored="false" />

   <dynamicField name="*_dt"  type="date"    indexed="true"  stored="true"/>
   <dynamicField name="*_dts" type="date"    indexed="true"  stored="true" multiValued="true"/>
   <dynamicField name="*_p"  type="location" indexed="true" stored="true"/>

   <!-- some trie-coded dynamic fields for faster range queries -->
   <dynamicField name="*_ti" type="tint"    indexed="true"  stored="true"/>
   <dynamicField name="*_tl" type="tlong"   indexed="true"  stored="true"/>
   <dynamicField name="*_tf" type="tfloat"  indexed="true"  stored="true"/>
   <dynamicField name="*_td" type="tdouble" indexed="true"  stored="true"/>
   <dynamicField name="*_tdt" type="tdate"  indexed="true"  stored="true"/>

   <dynamicField name="*_c"   type="currency" indexed="true"  stored="true"/>

   <dynamicField name="ignored_*" type="ignored" multiValued="true"/>
   <dynamicField name="attr_*" type="text_general" indexed="true" stored="true" multiValued="true"/>

   <dynamicField name="random_*" type="random" />

   <uniqueKey>id</uniqueKey>

   <copyField source="id"          dest="crx_path"/>

   <copyField source="author"      dest="text"/>
   <copyField source="description" dest="text"/>
   <copyField source="body"        dest="text"/>
   <copyField source="keywords"    dest="text"/>
   <copyField source="tags"        dest="text"/>
   <copyField source="title"       dest="text"/>

   <!-- Facet fields -->
   <copyField source="author" dest="author_s"/>
   <copyField source="tags"   dest="tags_ss"/>

   <fieldType name="string" class="solr.StrField" sortMissingLast="true" />

   <!-- boolean type: "true" or "false" -->
   <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/>

    <!-- Default numeric field types. -->
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="float" class="solr.TrieFloatField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="double" class="solr.TrieDoubleField" precisionStep="0" positionIncrementGap="0"/>

    <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tfloat" class="solr.TrieFloatField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tlong" class="solr.TrieLongField" precisionStep="8" positionIncrementGap="0"/>
    <fieldType name="tdouble" class="solr.TrieDoubleField" precisionStep="8" positionIncrementGap="0"/>

    <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>

    <!-- A Trie based date field for faster date range queries and date faceting. -->
    <fieldType name="tdate" class="solr.TrieDateField" precisionStep="6" positionIncrementGap="0"/>

    <!--Binary data type. The data should be sent/retrieved in as Base64 encoded Strings -->
    <fieldtype name="binary" class="solr.BinaryField"/>

    <fieldType name="random" class="solr.RandomSortField" indexed="true" />

    <!-- A text field that only splits on whitespace for exact matching of words -->
    <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      </analyzer>
    </fieldType>

    <!-- A text type for English text where stopwords and synonyms are managed using the REST API -->
    <fieldType name="managed_en" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.ManagedStopFilterFactory" managed="english" />
        <filter class="solr.ManagedSynonymFilterFactory" managed="english" />
      </analyzer>
    </fieldType>

    <!-- A general text field that has reasonable, generic
         cross-language defaults: it tokenizes with StandardTokenizer,
	 removes stop words from case-insensitive "stopwords.txt"
	 (empty by default), and down cases.  At query time only, it
	 also applies synonyms. -->
    <fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

    <!-- A text field with defaults appropriate for English: it
         tokenizes with StandardTokenizer, removes English stop words
         (lang/stopwords_en.txt), down cases, protects words from protwords.txt, and
         finally applies Porter's stemming.  The query time analyzer
         also applies synonyms from synonyms.txt. -->
    <fieldType name="text_en" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <!-- Case insensitive stop word removal.
        -->
        <filter class="solr.StopFilterFactory"
                ignoreCase="true"
                words="lang/stopwords_en.txt"
                />
        <filter class="solr.LowerCaseFilterFactory"/>
	<filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
	<!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
        <filter class="solr.EnglishMinimalStemFilterFactory"/>
	-->
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory"
                ignoreCase="true"
                words="lang/stopwords_en.txt"
                />
        <filter class="solr.LowerCaseFilterFactory"/>
	<filter class="solr.EnglishPossessiveFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
	<!-- Optionally you may want to use this less aggressive stemmer instead of PorterStemFilterFactory:
        <filter class="solr.EnglishMinimalStemFilterFactory"/>
	-->
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
    </fieldType>

    <!-- A text field with defaults appropriate for English, plus
	 aggressive word-splitting and autophrase features enabled.
	 This field is just like text_en, except it adds
	 WordDelimiterFilter to enable splitting and matching of
	 words on case-change, alpha numeric boundaries, and
	 non-alphanumeric chars.  This means certain compound word
	 cases will work, for example query "wi fi" will match
	 document "WiFi" or "wi-fi".
        -->
    <fieldType name="text_en_splitting" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
      <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <!-- in this example, we will only use synonyms at query time
        <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
        -->
        <!-- Case insensitive stop word removal.
        -->
        <filter class="solr.StopFilterFactory"
                ignoreCase="true"
                words="lang/stopwords_en.txt"
                />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory"
                ignoreCase="true"
                words="lang/stopwords_en.txt"
                />
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.PorterStemFilterFactory"/>
      </analyzer>
    </fieldType>

    <!-- Less flexible matching, but less false matches.  Probably not ideal for product names,
         but may be good for SKUs.  Can insert dashes in the wrong place and still match. -->
    <fieldType name="text_en_splitting_tight" class="solr.TextField" positionIncrementGap="100" autoGeneratePhraseQueries="true">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="lang/stopwords_en.txt"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="1" catenateNumbers="1" catenateAll="0"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.KeywordMarkerFilterFactory" protected="protwords.txt"/>
        <filter class="solr.EnglishMinimalStemFilterFactory"/>
        <!-- this filter can remove any duplicate tokens that appear at the same position - sometimes
             possible with WordDelimiterFilter in conjuncton with stemming. -->
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
      </analyzer>
    </fieldType>

    <!-- Just like text_general except it reverses the characters of
	 each token, to enable more efficient leading wildcard queries. -->
    <fieldType name="text_general_rev" class="solr.TextField" positionIncrementGap="100">
      <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.ReversedWildcardFilterFactory" withOriginal="true"
           maxPosAsterisk="3" maxPosQuestion="2" maxFractionAsterisk="0.33"/>
      </analyzer>
      <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
        <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
        <filter class="solr.LowerCaseFilterFactory"/>
      </analyzer>
    </fieldType>

    <!-- charFilter + WhitespaceTokenizer  -->
    <!--
    <fieldType name="text_char_norm" class="solr.TextField" positionIncrementGap="100" >
      <analyzer>
        <charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      </analyzer>
    </fieldType>
    -->

    <!-- This is an example of using the KeywordTokenizer along
         With various TokenFilterFactories to produce a sortable field
         that does not include some properties of the source text
      -->
    <fieldType name="alphaOnlySort" class="solr.TextField" sortMissingLast="true" omitNorms="true">
      <analyzer>
        <!-- KeywordTokenizer does no actual tokenizing, so the entire
             input string is preserved as a single token
          -->
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <!-- The LowerCase TokenFilter does what you expect, which can be
             when you want your sorting to be case insensitive
          -->
        <filter class="solr.LowerCaseFilterFactory" />
        <!-- The TrimFilter removes any leading or trailing whitespace -->
        <filter class="solr.TrimFilterFactory" />
        <!-- The PatternReplaceFilter gives you the flexibility to use
             Java Regular expression to replace any sequence of characters
             matching a pattern with an arbitrary replacement string,
             which may include back references to portions of the original
             string matched by the pattern.

             See the Java Regular Expression documentation for more
             information on pattern and replacement string syntax.

             http://docs.oracle.com/javase/7/docs/api/java/util/regex/package-summary.html
          -->
        <filter class="solr.PatternReplaceFilterFactory"
                pattern="([^a-z])" replacement="" replace="all"
        />
      </analyzer>
    </fieldType>

    <fieldtype name="phonetic" stored="false" indexed="true" class="solr.TextField" >
      <analyzer>
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.DoubleMetaphoneFilterFactory" inject="false"/>
      </analyzer>
    </fieldtype>

    <fieldtype name="payloads" stored="false" indexed="true" class="solr.TextField" >
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <!--
        The DelimitedPayloadTokenFilter can put payloads on tokens... for example,
        a token of "foo|1.4"  would be indexed as "foo" with a payload of 1.4f
        Attributes of the DelimitedPayloadTokenFilterFactory :
         "delimiter" - a one character delimiter. Default is | (pipe)
	 "encoder" - how to encode the following value into a playload
	    float -> org.apache.lucene.analysis.payloads.FloatEncoder,
	    integer -> o.a.l.a.p.IntegerEncoder
	    identity -> o.a.l.a.p.IdentityEncoder
            Fully Qualified class name implementing PayloadEncoder, Encoder must have a no arg constructor.
         -->
        <filter class="solr.DelimitedPayloadTokenFilterFactory" encoder="float"/>
      </analyzer>
    </fieldtype>

    <!-- lowercases the entire field value, keeping it as a single token.  -->
    <fieldType name="lowercase" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.KeywordTokenizerFactory"/>
        <filter class="solr.LowerCaseFilterFactory" />
      </analyzer>
    </fieldType>

    <!--
      Example of using PathHierarchyTokenizerFactory at index time, so
      queries for paths match documents at that path, or in descendent paths
    -->
    <fieldType name="descendent_path" class="solr.TextField">
      <analyzer type="index">
	<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
      </analyzer>
      <analyzer type="query">
	<tokenizer class="solr.KeywordTokenizerFactory" />
      </analyzer>
    </fieldType>
    <!--
      Example of using PathHierarchyTokenizerFactory at query time, so
      queries for paths match documents at that path, or in ancestor paths
    -->
    <fieldType name="ancestor_path" class="solr.TextField">
      <analyzer type="index">
	<tokenizer class="solr.KeywordTokenizerFactory" />
      </analyzer>
      <analyzer type="query">
	<tokenizer class="solr.PathHierarchyTokenizerFactory" delimiter="/" />
      </analyzer>
    </fieldType>

    <!-- since fields of this type are by default not stored or indexed,
         any data added to them will be ignored outright.  -->
    <fieldtype name="ignored" stored="false" indexed="false" multiValued="true" class="solr.StrField" />

    <!-- This point type indexes the coordinates as separate fields (subFields)
      If subFieldType is defined, it references a type, and a dynamic field
      definition is created matching *___<typename>.  Alternately, if
      subFieldSuffix is defined, that is used to create the subFields.
      Example: if subFieldType="double", then the coordinates would be
        indexed in fields myloc_0___double,myloc_1___double.
      Example: if subFieldSuffix="_d" then the coordinates would be indexed
        in fields myloc_0_d,myloc_1_d
      The subFields are an implementation detail of the fieldType, and end
      users normally should not need to know about them.
     -->
    <fieldType name="point" class="solr.PointType" dimension="2" subFieldSuffix="_d"/>

    <!-- A specialized field for geospatial search. If indexed, this fieldType must not be multivalued. -->
    <fieldType name="location" class="solr.LatLonType" subFieldSuffix="_coordinate"/>

    <!-- An alternative geospatial field type new to Solr 4.  It supports multiValued and polygon shapes.
      For more information about this and other Spatial fields new to Solr 4, see:
      http://wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4
    -->
    <fieldType name="location_rpt" class="solr.SpatialRecursivePrefixTreeFieldType"
        geo="true" distErrPct="0.025" maxDistErr="0.000009" units="degrees" />

   <!-- Money/currency field type. See http://wiki.apache.org/solr/MoneyFieldType
        Parameters:
          defaultCurrency: Specifies the default currency if none specified. Defaults to "USD"
          precisionStep:   Specifies the precisionStep for the TrieLong field used for the amount
          providerClass:   Lets you plug in other exchange provider backend:
                           solr.FileExchangeRateProvider is the default and takes one parameter:
                             currencyConfig: name of an xml file holding exchange rates
                           solr.OpenExchangeRatesOrgProvider uses rates from openexchangerates.org:
                             ratesFileLocation: URL or path to rates JSON file (default latest.json on the web)
                             refreshInterval: Number of minutes between each rates fetch (default: 1440, min: 60)
   -->
    <fieldType name="currency" class="solr.CurrencyField" precisionStep="8" defaultCurrency="USD" currencyConfig="currency.xml" />

</schema>


text:
package DoubleEndedLinkedList;

public class DoubleEndedList {
    private Link first;        //ref to first link
    private Link last;         //ref to last link
    //----------------------------------------------------------
    public DoubleEndedList(){    //Cpnstructor
        first=null;
        last=null;               //no link to list yet
    }
    //----------------------------------------------------------
    public boolean isEmpty(){    //true if no link
        return first==null;
    }
    //----------------------------------------------------------
    public void insertFirst(long dd){     //insert at frint of list
        Link newLink=new Link(dd);        //make a new link

        if(isEmpty()){                   //if empty list
            last=newLink;                //newLink<--- last
        }
        newLink.next =first;            //newLink-->old first
        first =newLink;
    }
    //----------------------------------------------------------
    public void insertLast(long dd){       //insert at the last of list
        Link newLink=new Link(dd);         //make a new Link
        if(isEmpty())                      //if link is empty
            first =newLink;                //first-->newLink
        else
            last.next=newLink;             //old last ---->newLink
        last=newLink;                      //newLink<---last
    }
    //----------------------------------------------------------
    public long deleteFirst(){            //delete first link
        long temp=first.dData;
        if(first.next==null)
            last=null;
        first=first.next;
        return temp;
    }
    //----------------------------------------------------------
    public void displayList(){
        System.out.print("List (first-->last):");
        Link current=first;    //start at the beginning
        while(current!=null){  //untill end of list
            current.displayLink(); //print Data
            current=current.next;  //move to next link
        }
        System.out.println("");
    }
    //----------------------------------------------------------
}


text:
<resources>

    <style name="AppTheme" parent="AppBaseTheme">
        <!-- All customizations that are NOT specific to a particular API-level can go here. -->
    </style>

    <style name="AppBaseTheme" parent="android:Theme.Holo">
        <!-- API 11 theme customizations can go here. -->
    </style>

    <style name="LightPickerDialogTheme" parent="android:Theme.Holo.Light.Dialog">
        <item name="android:windowMinWidthMinor">0dip</item>
        <item name="android:windowMinWidthMajor">0dip</item>
    </style>

    <style name="DarkPickerDialogTheme" parent="android:Theme.Holo.Dialog">
        <item name="android:windowMinWidthMinor">0dip</item>
        <item name="android:windowMinWidthMajor">0dip</item>
    </style>

</resources>


text:
"""This plugin adds artifact functionality to the UI."""

import itertools
import StringIO

from grr.gui import renderers
from grr.gui.plugins import fileview
from grr.gui.plugins import forms
from grr.gui.plugins import semantic
from grr.lib import aff4
from grr.lib import artifact
from grr.lib import artifact_lib
from grr.lib import artifact_registry
from grr.lib import parsers
from grr.lib import rdfvalue

class ArtifactListRenderer(forms.MultiSelectListRenderer):
  """Renderer for listing the available Artifacts."""

  type = rdfvalue.ArtifactName

  artifact_template = ("""

Labels

Platforms

Conditions

Dependencies

Links

Output Type

Artifact Sources

Artifact Processors

""")

  layout_template = (
      """
"""
      + forms.TypeDescriptorFormRenderer.default_description_view + """

          <input id='{{unique|escape}}_search'
            placeholder="Search"></input>

          <select id='{{unique|escape}}_os_filter'
            placeholder="OS Filter"></input>

          <select id='{{unique|escape}}_artifact_list' class='artifact_list'
            multiple />

          <select id='{{this.prefix|escape}}' class='artifact_list' multiple/>
        """
      + artifact_template + """

          Add
          Add all

          Clear
          Remove

""")

  def Layout(self, request, response):
    """Get available artifact information for display."""
    # Get all artifacts that aren't Bootstrap and aren't the base class.
    self.artifacts = {}
    artifact.LoadArtifactsFromDatastore(token=request.token)
    for name, artifact_val in (
        artifact_registry.ArtifactRegistry.artifacts.items()):
      if set(["Bootstrap"]).isdisjoint(artifact_val.labels):
        self.artifacts[name] = artifact_val
    self.labels = artifact_lib.ARTIFACT_LABELS

    # Convert artifacts into a dict usable from javascript.
    artifact_dict = {}
    for artifact_name, artifact_val in self.artifacts.items():
      artifact_dict[artifact_name] = artifact_val.ToExtendedDict()
      processors = []
      for processor in parsers.Parser.GetClassesByArtifact(artifact_name):
        processors.append({"name": processor.__name__,
                           "output_types": processor.output_types,
                           "doc": processor.GetDescription()})
      artifact_dict[artifact_name]["processors"] = processors

    # Skip the our parent and call the TypeDescriptorFormRenderer direct.
    response = renderers.TypeDescriptorFormRenderer.Layout(self, request,
                                                           response)
    return self.CallJavascript(response, "ArtifactListRenderer.Layout",
                               prefix=self.prefix,
                               artifacts=artifact_dict,
                               supported_os=artifact_lib.SUPPORTED_OS_LIST,
                               labels=self.labels)

class ArtifactRDFValueRenderer(semantic.RDFValueRenderer):
  """A special renderer for ArtifactRDFValues."""

  classname = "Artifact"

  layout_template = renderers.Template(
      """

"""
      + ArtifactListRenderer.artifact_template + """

""")

  def Layout(self, request, response):
    self.artifact_str = self.proxy.ToPrettyJson()
    response = super(ArtifactRDFValueRenderer, self).Layout(request, response)
    return self.CallJavascript(response, "ArtifactRDFValueRenderer.Layout",
                               artifact_str=self.artifact_str)

class ArtifactRawRDFValueRenderer(semantic.RDFValueRenderer):
  """A renderer for showing JSON format for ArtifactRDFValues."""

  classname = "Artifact"

  layout_template = renderers.Template(
      "
{{this.artifact_str|escape}}
")

  def Layout(self, request, response):
    self.artifact_str = self.proxy.ToPrettyJson(extended=True)
    super(ArtifactRawRDFValueRenderer, self).Layout(request, response)

class ArtifactManagerView(renderers.TableRenderer):
  """Artifact Manager table with toolbar."""

  description = "Artifact Manager"
  behaviours = frozenset(["Configuration"])
  order = 50

  toolbar = "ArtifactManagerToolbar"

  def __init__(self, **kwargs):
    super(ArtifactManagerView, self).__init__(**kwargs)
    self.AddColumn(semantic.RDFValueColumn("Artifact Name", width="5%"))
    self.AddColumn(semantic.RDFValueColumn(
        "Artifact Details", width="50%", renderer=ArtifactRDFValueRenderer))
    self.AddColumn(semantic.RDFValueColumn(
        "Artifact Raw", width="40%", renderer=ArtifactRawRDFValueRenderer))

  def BuildTable(self, start_row, end_row, request):
    """Builds table artifacts."""
    artifact_urn = rdfvalue.RDFURN("aff4:/artifact_store")
    try:
      collection = aff4.FACTORY.Open(artifact_urn,
                                     aff4_type="RDFValueCollection",
                                     token=request.token)
    except IOError:
      return

    self.size = len(collection)
    row_index = start_row
    for value in itertools.islice(collection, start_row, end_row):
      self.AddCell(row_index, "Artifact Name", value.name)
      self.AddCell(row_index, "Artifact Details", value)
      self.AddCell(row_index, "Artifact Raw", value)
      row_index += 1

  def Layout(self, request, response):
    """Populate the table state with the request."""
    if self.toolbar:
      tb_cls = renderers.Renderer.classes[self.toolbar]
      tb_cls().Layout(request, response)
    return super(ArtifactManagerView, self).Layout(request, response)

class ArtifactManagerToolbar(renderers.TemplateRenderer):
  """A navigation enhancing toolbar.

  Internal State:
    - aff4_path: The path we are viewing now in the table.
  """
  post_parameters = ["aff4_path"]
  event_queue = "file_select"

  layout_template = renderers.Template("""

    <button id='{{unique|escape}}_upload' class="btn btn-default"
      title="Upload Artifacts as JSON or YAML"
      data-toggle="modal" data-target="#upload_dialog_{{unique|escape}}">

    </button>

    <button id='{{unique|escape}}_deleteall' class="btn btn-default"
      title="Delete all uploaded artifacts" data-toggle="modal"
      data-target="#delete_confirm_dialog_{{unique|escape}}">

    </button>

        <button id="upload_artifact_btn_{{unique|escape}}" type="button"
        class="close" data-dismiss="modal" aria-hidden="true">
          x</button>

Upload File

        <button id="upload_artifact_close_btn_{{unique|escape}}"
          class="btn btn-default" data-dismiss="modal" aria-hidden="true">
          Close
        </button>

""")

  def Layout(self, request, response):
    response = super(ArtifactManagerToolbar, self).Layout(request, response)
    return self.CallJavascript(response, "ArtifactManagerToolbar.Layout")

class DeleteArtifactsConfirmationDialog(renderers.ConfirmationDialogRenderer):
  """Dialog that asks for confirmation to delete uploaded artifacts.

  Note that this only deletes artifacts that have been uploaded via the
  ArtifactManager.  Artifacts loaded from the artifacts directory are
  unaffected.
  """

  content_template = renderers.Template("""

Are you sure you want to delete all
uploaded artifacts?

""")

  ajax_template = renderers.Template("""

Uploaded artifacts were deleted successfully.

""")

  def RenderAjax(self, request, response):
    aff4.FACTORY.Delete("aff4:/artifact_store", token=request.token)
    return self.RenderFromTemplate(self.ajax_template, response,
                                   unique=self.unique, this=self)

class ArtifactJsonUploadView(fileview.UploadView):
  """Renders a binary upload page."""
  post_parameters = []
  upload_handler = "ArtifactUploadHandler"
  storage_path = "aff4:/artifact_store"

class ArtifactUploadHandler(fileview.UploadHandler):
  """Handles upload of a binary config file such as a driver."""

  def RenderAjax(self, request, response):
    """Handle the upload via ajax."""
    try:
      self.uploaded_file = request.FILES.items()[0][1]
      content = StringIO.StringIO()
      for chunk in self.uploaded_file.chunks():
        content.write(chunk)
      self.dest_path = artifact.UploadArtifactYamlFile(
          content.getvalue(), token=request.token)

      return renderers.TemplateRenderer.Layout(self, request, response,
                                               self.success_template)
    except (IOError, artifact_registry.ArtifactDefinitionError) as e:
      self.error = "Could not write artifact to database %s" % e
    return renderers.TemplateRenderer.Layout(self, request, response,
                                             self.error_template)


text:
/* Number of files uploaded to Wikimedia Commons in 2004 that have a GFDL license */
/* Similar live version (for 2015) at http://quarry.wmflabs.org/query/3949 */

use commonswiki_p;
SELECT count(page_title)
    FROM page, image
    WHERE page.page_namespace = 6
        AND page.page_title = image.img_name
        AND image.img_timestamp LIKE '2004%'
        AND page_id IN (
            SELECT DISTINCT(cl_from) FROM categorylinks
                    WHERE categorylinks.cl_to LIKE 'GFDL'
            );


text:
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Test file</title>

    <!-- Copyright BAM 2013-2017 -->
    <!-- Copyright BAM 2011-2017 -->
    <!-- Copyright BAM 2012-2017 -->

    <!-- @begin:html-block-string-css -->
    <link rel="stylesheet" href="css/combined.css">
    <!-- @end:html-block-string-css -->

    <!-- @begin:html-block-func-css -->
    <link rel="stylesheet" href="dynamic/path-one.css">
    <link rel="stylesheet" href="dynamic/path-two.css">
    <!-- @end:html-block-func-css -->
</head>
<body>

<!-- @begin:lorem-ipsum -->
<!-- @end:lorem-ipsum -->
</body>
</html>


text:
\hypertarget{classuran_1_1formula_1_1_function}{}\section{uran.\+formula.\+Function Class Reference}
\label{classuran_1_1formula_1_1_function}\index{uran.\+formula.\+Function@{uran.\+formula.\+Function}}

Inheritance diagram for uran.\+formula.\+Function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=226pt]{classuran_1_1formula_1_1_function__inherit__graph}
\end{center}
\end{figure}

Collaboration diagram for uran.\+formula.\+Function\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=226pt]{classuran_1_1formula_1_1_function__coll__graph}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\hyperlink{classuran_1_1formula_1_1_function_abab40ed046111627cab8d93b2780da11}{Function} (String n, Type...\+args)
\item
\hyperlink{classuran_1_1formula_1_1_function_a8798b4f02f197741361be6596dc8f0f5}{Function} (\hyperlink{classuran_1_1formula_1_1_function}{Function} fun, Function...\+args)
\item
int \hyperlink{classuran_1_1formula_1_1_function_a615e9611d49db496dcd3f74550a220cb}{arity} ()
\item
String \hyperlink{classuran_1_1formula_1_1_function_acd825466dceed6c2d677895d9e156c27}{name} ()
\item
\hyperlink{classuran_1_1formula_1_1type_1_1_type}{Type}\mbox{[}$\,$\mbox{]} \hyperlink{classuran_1_1formula_1_1_function_a48b08ecb2b2594ba31c63df397022e65}{get\+Args} ()
\item
\hyperlink{classuran_1_1formula_1_1type_1_1_type}{Type} \hyperlink{classuran_1_1formula_1_1_function_ae44d77eca56a3d932e06715b8129ffd5}{get\+Args} (int index)
\item
\hyperlink{classuran_1_1formula_1_1type_1_1_type}{Type} \hyperlink{classuran_1_1formula_1_1_function_a1284d625f45b675f2819578b1fea8fbe}{get\+Return\+Type} ()
\item
boolean \hyperlink{classuran_1_1formula_1_1_function_a2cfe351a2f060618cbe571342b64e662}{is\+Constant} ()
\item
boolean \hyperlink{classuran_1_1formula_1_1_function_ac06a993807911137fb8099bc0d3cc4e9}{is\+Function} ()
\item
\hyperlink{classuran_1_1formula_1_1_function}{Function} \hyperlink{classuran_1_1formula_1_1_function_a39bab5b0fa754e4a24e2655f8003e32f}{apply} (Function...\+functions)
\item
String \hyperlink{classuran_1_1formula_1_1_function_a118f8a1eaff250ed8ccc31603129bc0e}{to\+String} ()
\item
String \hyperlink{classuran_1_1formula_1_1_function_a667a61d9acbae47f9de11ad8b354269c}{to\+S\+M\+T2} ()
\item
String \hyperlink{classuran_1_1formula_1_1_function_af33e0ca53f19882649241248946a7f66}{to\+S\+M\+T2\+\_\+decl} ()
\item
void \hyperlink{classuran_1_1formula_1_1_function_a36588b7e90d80b1a316c357b6099373b}{accept} (\hyperlink{classuran_1_1formula_1_1visitor_1_1_abstract_visitor}{Abstract\+Visitor} visitor)
\end{DoxyCompactItemize}

\subsection{Detailed Description}
Abstract syntax tree for function

Definition at line 22 of file Function.\+java.

\subsection{Constructor \& Destructor Documentation}
\hypertarget{classuran_1_1formula_1_1_function_abab40ed046111627cab8d93b2780da11}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!Function@{Function}}
\index{Function@{Function}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{Function}]{\setlength{\rightskip}{0pt plus 5cm}uran.\+formula.\+Function.\+Function (
\begin{DoxyParamCaption}
\item[{String}]{n, }
\item[{Type...}]{args}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_abab40ed046111627cab8d93b2780da11}
Construct a function based on a list of argument type

Definition at line 29 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a8798b4f02f197741361be6596dc8f0f5}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!Function@{Function}}
\index{Function@{Function}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{Function}]{\setlength{\rightskip}{0pt plus 5cm}uran.\+formula.\+Function.\+Function (
\begin{DoxyParamCaption}
\item[{{\bf Function}}]{fun, }
\item[{Function...}]{args}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a8798b4f02f197741361be6596dc8f0f5}
Construct a function application

Definition at line 43 of file Function.\+java.

\subsection{Member Function Documentation}
\hypertarget{classuran_1_1formula_1_1_function_a36588b7e90d80b1a316c357b6099373b}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!accept@{accept}}
\index{accept@{accept}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{accept}]{\setlength{\rightskip}{0pt plus 5cm}void uran.\+formula.\+Function.\+accept (
\begin{DoxyParamCaption}
\item[{{\bf Abstract\+Visitor}}]{visitor}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a36588b7e90d80b1a316c357b6099373b}

Definition at line 141 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a39bab5b0fa754e4a24e2655f8003e32f}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!apply@{apply}}
\index{apply@{apply}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{apply}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Function} uran.\+formula.\+Function.\+apply (
\begin{DoxyParamCaption}
\item[{Function...}]{functions}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a39bab5b0fa754e4a24e2655f8003e32f}
Apply this function on a list of functions.

\begin{DoxyParams}{Parameters}
{\em functions} & list of functions to be applied on. \\
\hline
\end{DoxyParams}

Definition at line 92 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a615e9611d49db496dcd3f74550a220cb}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!arity@{arity}}
\index{arity@{arity}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{arity}]{\setlength{\rightskip}{0pt plus 5cm}int uran.\+formula.\+Function.\+arity (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a615e9611d49db496dcd3f74550a220cb}
Return the arity of this function.

Definition at line 51 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a48b08ecb2b2594ba31c63df397022e65}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!get\+Args@{get\+Args}}
\index{get\+Args@{get\+Args}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{get\+Args}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Type} \mbox{[}$\,$\mbox{]} uran.\+formula.\+Function.\+get\+Args (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a48b08ecb2b2594ba31c63df397022e65}
Return all arguments

Definition at line 64 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_ae44d77eca56a3d932e06715b8129ffd5}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!get\+Args@{get\+Args}}
\index{get\+Args@{get\+Args}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{get\+Args}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Type} uran.\+formula.\+Function.\+get\+Args (
\begin{DoxyParamCaption}
\item[{int}]{index}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_ae44d77eca56a3d932e06715b8129ffd5}
Get a specific argument type.

Definition at line 67 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a1284d625f45b675f2819578b1fea8fbe}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!get\+Return\+Type@{get\+Return\+Type}}
\index{get\+Return\+Type@{get\+Return\+Type}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{get\+Return\+Type}]{\setlength{\rightskip}{0pt plus 5cm}{\bf Type} uran.\+formula.\+Function.\+get\+Return\+Type (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a1284d625f45b675f2819578b1fea8fbe}
Get the return type of this function.

Definition at line 74 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a2cfe351a2f060618cbe571342b64e662}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!is\+Constant@{is\+Constant}}
\index{is\+Constant@{is\+Constant}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{is\+Constant}]{\setlength{\rightskip}{0pt plus 5cm}boolean uran.\+formula.\+Function.\+is\+Constant (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a2cfe351a2f060618cbe571342b64e662}
A constant is that a function has 0 arity.

Definition at line 80 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_ac06a993807911137fb8099bc0d3cc4e9}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!is\+Function@{is\+Function}}
\index{is\+Function@{is\+Function}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{is\+Function}]{\setlength{\rightskip}{0pt plus 5cm}boolean uran.\+formula.\+Function.\+is\+Function (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_ac06a993807911137fb8099bc0d3cc4e9}
Returns true

Definition at line 86 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_acd825466dceed6c2d677895d9e156c27}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!name@{name}}
\index{name@{name}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{name}]{\setlength{\rightskip}{0pt plus 5cm}String uran.\+formula.\+Function.\+name (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_acd825466dceed6c2d677895d9e156c27}
Return the name of this function.

Definition at line 57 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a667a61d9acbae47f9de11ad8b354269c}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!to\+S\+M\+T2@{to\+S\+M\+T2}}
\index{to\+S\+M\+T2@{to\+S\+M\+T2}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{to\+S\+M\+T2}]{\setlength{\rightskip}{0pt plus 5cm}String uran.\+formula.\+Function.\+to\+S\+M\+T2 (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a667a61d9acbae47f9de11ad8b354269c}
This is for generating function application. N\+O\+T\+E\+: \hyperlink{classuran_1_1formula_1_1_function}{Function} declaration must be created 1st.

Definition at line 119 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_af33e0ca53f19882649241248946a7f66}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!to\+S\+M\+T2\+\_\+decl@{to\+S\+M\+T2\+\_\+decl}}
\index{to\+S\+M\+T2\+\_\+decl@{to\+S\+M\+T2\+\_\+decl}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{to\+S\+M\+T2\+\_\+decl}]{\setlength{\rightskip}{0pt plus 5cm}String uran.\+formula.\+Function.\+to\+S\+M\+T2\+\_\+decl (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_af33e0ca53f19882649241248946a7f66}
This is for generating declaration only.

Definition at line 133 of file Function.\+java.

\hypertarget{classuran_1_1formula_1_1_function_a118f8a1eaff250ed8ccc31603129bc0e}{}\index{uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}!to\+String@{to\+String}}
\index{to\+String@{to\+String}!uran\+::formula\+::\+Function@{uran\+::formula\+::\+Function}}
\subsubsection[{to\+String}]{\setlength{\rightskip}{0pt plus 5cm}String uran.\+formula.\+Function.\+to\+String (
\begin{DoxyParamCaption}
{}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily [inline]}}\label{classuran_1_1formula_1_1_function_a118f8a1eaff250ed8ccc31603129bc0e}

Definition at line 105 of file Function.\+java.

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
/home/haowu/uran/src/uran/formula/\hyperlink{_function_8java}{Function.\+java}\end{DoxyCompactItemize}


text:
<?php

namespace Genemu\Bundle\FormBundle\Form\Core\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormInterface;
use Symfony\Component\Form\FormViewInterface;
use Symfony\Component\OptionsResolver\Options;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

/**
 * A Form type that just renders the field as a p tag. This is useful for forms where certain field
 * need to be shown but not editable.
 *
 * @author Adam Kuśmierz <adam@kusmierz.be>
 */
class PlainType extends AbstractType
{
    /**
     * {@inheritdoc}
     */
    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        return array(
            'widget'  => 'field',
            'read_only' => true,
            'attr' => array(
                'class' => $this->getName()
            )
        );
    }

    /**
     * {@inheritdoc}
     */
    public function buildView(FormViewInterface $view, FormInterface $form, array $options)
    {
        $value = $form->getViewData();

        // set string representation
        if (true === $value) {
            $value = 'true';
        } elseif (false === $value) {
            $value = 'false';
        } elseif (null === $value) {
            $value = 'null';
        } elseif (is_array($value)) {
            $value = implode(', ', $value);
        } elseif ($value instanceof \DateTime) {
            $value = $value->format('Y-m-d H:i:s');
        } elseif (is_object($value)) {
            if (method_exists($value, '__toString')) {
                $value = $value->__toString();
            } else {
                $value = get_class($value);
            }
        }

        $view->setVar('value', (string) $value);
    }

    /**
     * {@inheritdoc}
     */
    public function getParent()
    {
        return 'field';
    }

    /**
     * {@inheritdoc}
     */
    public function getName()
    {
        return 'genemu_plain';
    }
}