package org.basex.examples.module; import org.basex.query.*; import org.basex.query.value.item.*; /** * This is a simple demo module called by {link {@link FruitsExample}. * It is derived from the {@link QueryModule} class. * * @author BaseX Team 2005-17, BSD License */ public class FruitsModule extends QueryModule { /** Fruits array. */ private static final String[] FRUITS = { "Apple", "Banana", "Cherry" }; /** * Returns the specified fruit. * This variant is more convenient, as it uses Java's standard data types. * * @param fruit index of fruit to be returned * @return fruit string */ @Deterministic @Requires(Permission.READ) public String convenient(final int fruit) { final int i = fruit; final String f = FRUITS[i % FRUITS.length]; return f; } /** * Returns the specified fruit. * This variant is faster, as it uses the internal data types of BaseX. * * @param fruit index of fruit to be returned * @return fruit string */ @Deterministic @Requires(Permission.READ) public Str fast(final Int fruit) { final int i = (int) fruit.itr(); final String f = FRUITS[i % FRUITS.length]; return Str.get(f); } /** * Context function: returns the name of the current user. * @return user */ public String user() { return queryContext.context.user().name(); } }