In this basic example a dialog will open when you click the link below.
The result of the dialog will be retreived and the link is updated with the resulting text from the dialog.
The dialog will disable/enable the OK-button depending on the conent of the Name input field.
This is done using the enable and disable methods of DialogContext.
dlgCtx.enable('button_ok');
We override the buttons when we open the dialog to change the text. Note that the buttons ids still must be the same or the dialog will listen for the wrong events.
We set the index to 5 so it appears between the existing buttons
buttons : [ {name : "new", text : "Open default dialog", index : 5}, {name : "ok", text : "A custom OK-text"} ]
.on('button_new', function() { ... })
dialogr.open("name-input.html", parameters, { width : '500px' })


M.S. Dhoni
The Living Legend of Indian Cricket
Here's a time line of MS. Dhoni's life:
- 1981 - Born in Ranchi, India
- 1999-2000 - Played Ranji Trophy by representing Bihar.
- 2001-2003 - Travelling Ticket Examiner at Kaharagpur Railway Station
- 2004 - Made ODI debut against Bangladesh
- 2005 - Played first test match against Sri Lanka. Beacme Wicket Keeper of India
- 2007 - Became captain of the Indian National Cricket Team. Led India to the historic T20 World cup win.
- 2008 and 2009 - Won the ICC Player of the Year Award
- 2008 - Joins Chennai Super Kings, most successful team of Indian Premier League
- 2010 - Married Sakshi Singh Rawat.
- 2011 - Led India to win their second World Cup Title after 28 years
- 2014 - Retires from Test Cricket
- 2015 - His daughter Ziva was Born.
- 2016 - Retired from captaincy.
- 2016 - Biopic M.S Dhoni - The Untold Story made on his life
- 2018 - Received Padma Bhushan, Third Highest Civilian honour in India
- 2018 - Chennai Super Kings won their third IPL title under Leadership of MS. Dhoni.
- 2019 - Represented India in the World Cup held in England.


Pensioner who tried to set her own bungalow on fire escapes jail
82-year-old was found not fit to stand trial after being remanded in prison
by Lucy WebberAn elderly woman has been spared jail after attempting to set her bungalow on fire.
On November 27 last year, Maureen Walsh tried to start the fire in the kitchen of her semi-detached home in Ellesmere Port .
Walsh, 82, had made the sink overflow by stuffing a tea towel on the plughole with both taps on full.
She also placed packets of food on each of the four electric cooker hobs which were all on.
It was also noted a kettle power cord was deliberately placed trailing in the water-filled sink whilst it was turned on, with the risk it could start an electrical fire.
Walsh was remanded in custody to Styal prison in the February of this year, where she was cared for by prison staff as her health began to fail significantly.
She was found not fit to plead or stand trial after medical reports were taken out on Ms Walsh.
At Chester Crown Court on November 19 Walsh was given a conditional discharge for 12 months.
Peter Hussey, from the Crown Prosecution Service, said: “This has been a complicated and sad case.
“Ms Walsh’s social conditions and health needs meant she had carers visiting her daily. Her behaviour was challenging, and the carers visited in pairs as she often became abusive and aggressive.”
Walsh had previously received a short prison sentence in February earlier this year for other, less serious offences.
Mr Hussey added: “She initially tried to blame the carers for the fire but also admitted that she’d done it on purpose.
“The special verdict by the jury meant that only three types of sentences were available to the court – a hospital order, a supervision order, or a conditional discharge.
"As her mental ill-health was not treatable, and her residence was uncertain, the sentencing options for the Court were very limited.”


Enter your specs and we'll make a custom table for you. Based on your specifications we'll give you an accurate price estimate and a visualization of your specific table.


{% include long/title.html %}
{% include long/education.html %}
{% include long/work.html %}
{% include long/courses.html %}
{% include long/programming.html %}
{% include long/research.html %}
{% include long/public-speaking.html %}
{% include long/publications.html %}
{% include long/schools-conferences.html %}
{% include long/achievements.html %}


I used to ride the unicycle.
My favorite restaurant is The Waffle Lab in Fort Collins, Colorado.
I was born in Carson City, Nevada.
My favorite color is orange.


Mumbai, also known as Bombay, is the capital city of the Indian state of Maharashtra. It is the most populous city in India and the ninth most populous agglomeration in the world, with an estimated city population of 18.4 million.Mumbai lies on the west coast of India and has a deep natural harbour. In 2008, Mumbai was named an alpha world city. It is also the wealthiest city in India.
The Gateway of India is an arch monument built during the 20th century in Bombay, India. The monument was erected to commemorate the landing of King George V and Queen Mary at Apollo Bunder on their visit India in 1911.The structure is an arch made of basalt, 26 metres (85 feet) high. The Gateway of India is located on the waterfront at Apollo Bunder area at the end of Chhatrapati Shivaji Marg in South Mumbai and overlooks the Arabian Sea.
Marine Drive is a 3.6-kilometre-long boulevard in South Mumbai in the city of Mumbai.The road was constructed by late philanthropist Bhagojisheth Keer & Pallonji Mistry. It is a 'C'-shaped six-lane concrete road along the coast, which is a natural bay. A promenade lies parallel to this road. Marine Drive is also known as the Queen's Necklace because, if viewed at night from an elevated point anywhere along the drive, the street lights resemble a string of pearls in a necklace.
The Bandra–Worli Sea Link, officially called Rajiv Gandhi Sea Link, is a cable-stayed bridge with pre-stressed concrete-steel viaducts on either side that links Bandra in the Western Suburbs of Mumbai with Worli in South Mumbai. The bridge is a part of the proposed Western Freeway that links the Western Suburbs to Nariman Point in Mumbai.The sea-link reduces travel time between Bandra and Worli during peak hours from 60–90 minutes to 20–30 minutes.
Elephanta Caves are a network of sculpted caves located on Elephanta Island, or Gharapuri (literally "the city of caves") in Mumbai Harbour, 10 kilometres (6.2 mi) to the east of Mumbai. The main cave (the Great Cave) was a Hindu place of worship until Portuguese rule began in 1534, after which the caves suffered severe damage. This cave was renovated in the 1970s after years of neglect, and was designated a UNESCO World Heritage Site in 1987 to preserve the artwork.
Dhobi Ghat (Mahalaxmi Dhobi Ghat) is a well known open air laundromat in Mumbai, India. The washers, locally known as Dhobis, work in the open to wash the clothes from Mumbai's hotels and hospitals. It is located next to Mahalaxmi railway station on the Western Railway's Saat Rasta roundabout.In 2013, World Records India and World Amazing Records honoured World Record Certificate to Dhobi Kalyan & Audhyogik Vikas Co – op. Society Ltd
The Jehangir Art Gallery is an art gallery in Mumbai (India). It was founded by Sir Cowasji Jehangir at the urging of K. K. Hebbar and Homi Bhabha. It was built in 1952.The entire cost of this mansion was donated by Cowasji Jehangir. This gallery is situated at Kala Ghoda, behind the Prince of Wales Museum, in South Mumbai near the Gateway of India, and has four exhibition halls. The gallery was designed by G.M.Bhuta for G.M. Bhuta & Associates
August Kranti Maidan in Mumbai holds a very important place in the history of Indian independence struggle as it was from the spot from where Mahatma Gandhi ordered the British to leave India. The Mahatma’s command to the British on August 8, 1942, marked the launch of the Quit India movement.The ground was re-christened as August Kranti Maidan to mark the historic event. The name, August Kranti Maidan loosely translated stands for August Revolution Ground.
Sanjay Gandhi National Park (SGNP), formerly Borivali National Park, is a large protected area in the northern part of Mumbai. It encompasses an area of 104 km2 (40 sq mi) and is surrounded on three sides by India's most populous city.. The rich flora and fauna of Sanjay Gandhi National Park attracts more than 2 million visitors every year. Tourists also enjoy visiting the 2400-year-old Kanheri caves sculpted out of the rocky cliffs which lie within the park.
Created by Rogin Koshy


Igor Milla
I’m currently working as Staff Engineer at
Telescope Inc.
I mostly build things that live on the internet.
I'm passionate about dev/build/deploy tools, coding standards,
and overall efficiency throughout the whole delivery pipeline.
I also enjoy mountain hiking and backpacking, landscape photography,
and the company of a
good book.
Communication
Posts


---
title: CSS Grid
layout: build/doc/layouts/css.html
---
***
# Grid CSS
***
Basic
Start by adding an element with a class of `row`. This will create a horizontal block to contain vertical columns. Then add divs with a `col` class within that row. You will notice the naming rules isn't same like Foundation, i've combined it with Bootstrap naming rules because really familiar to use and more simple. Don't forget to specify the widths of each column with the sm-#, md-#, and lg-# classes.
Code for small screens first, and larger devices will inherit those styles. Customize for larger screens as necessary.
HTML
{{#markdown}}
```scss
$test: #FFF;
```
{{/markdown}}
Rendered HTML


--- layout: post title: Futuroscope date: '2015-09-27T18:30:46+02:00' categories: - Sketches - Storyboards picture_url: https://film-Storyboards.tumblr.com/post/130022599531 ---
Storyboard for the Futuroscope de Poitier
Production: nWave Digital


The open marketplace for local hackers and makers.
{{hack.tagline}} | ${{hack.price}}
Created by dedicated developers who care about makers.
The parts you need delivered straight to your door.
Made to get you innovative creations as easy as possible.


Awaiting new orders
New orders will appear here as soon as they are
available
{{order.momentJsTime}}
{{order.theTimeAgo}}
{{order.orderIndex}}
Order
Increase/Decrease
{{allComponentsIndexNames[componentCarrierObject.componentIndex]}} x
{{processedOrderModels[order.orderIndex][componentCarrierObject.componentIndex]['quantity']}}


Pepperoni, Italian sauage, proscuitto,
pancetta, red onions
and mozzarella
cheese with tomato sauce.
Pancetta, sun-dried tomatoes, goat cheese and mozzarella cheese with garlic sauce.
Portabella mushrooms, caramelized onions, roasted garlic, mozarella cheese with sun-dried tomato pesto sauce.
Spinach, fresh tomatoes, caramelized onions, artichoke hearts, goat cheese, mozzarella cheese with garlic sauce.
Grilled chicken, kalamata olives, mozzarella cheese with basil pesto sauce.
Anchovies, black olives, mozarella cheese with tomato sauce.
For every pizza apart from Italian and Napoletana:
For Italian and Napoletana:


menu
knarfishness
:: manufacturing
knarfishness.net
Home
About
Contact
Resume
Portfolio
close
add
Web Development
Graphic Design
Photography
Projects
close
add
3D Printing
Robotics
3D Printing Gallery


Moving Around
Trigger Key + J/K/I/L
Arrow Keys
Trigger Key + U/O/H/N
Home / End / Page Up / Page Down
Trigger Key + Y/P/M
Insert / Backspace / (Forward) Delete


public class NDC
extends java.lang.Object
A Nested Diagnostic Context, or NDC in short, is an instrument to distinguish interleaved log output from different sources. Log output is typically interleaved when a server handles multiple clients near-simultaneously.
Interleaved log output can still be meaningful if each log entry from different contexts had a distinctive stamp. This is where NDCs come into play.
Note that NDCs are managed on a per thread
basis. NDC operations such as push
, pop()
, clear()
, getDepth()
and setMaxDepth(int)
affect the NDC of the current thread only. NDCs of other
threads remain unaffected.
For example, a servlet can build a per client request NDC
consisting the clients host name and other information contained in
the the request. Cookies are another source of distinctive
information. To build an NDC one uses the push
operation. Simply put,
NDC.push
. As a
side effect, if there is no nested diagnostic context for the
current thread, this method will create it.
NDC.pop
.
NDC.remove()
.
There is no penalty for forgetting to match each
push
operation with a corresponding pop
,
except the obvious mismatch between the real application context
and the context set in the NDC.
If configured to do so, PatternLayout
and TTCCLayout
instances automatically retrieve the nested diagnostic
context for the current thread without any user intervention.
Hence, even if a servlet is serving multiple clients
simultaneously, the logs emanating from the same code (belonging to
the same category) can still be distinguished because each client
request will have a different NDC tag.
Heavy duty systems should call the remove()
method when
leaving the run method of a thread. This ensures that the memory
used by the thread can be freed by the Java garbage
collector. There is a mechanism to lazily remove references to dead
threads. In practice, this means that you can be a little sloppy
and sometimes forget to call remove()
before exiting a
thread.
A thread may inherit the nested diagnostic context of another
(possibly parent) thread using the inherit
method. A thread may obtain a copy of its NDC with the cloneStack
method and pass the reference to any other
thread, in particular to a child.
| Modifier and Type | Method and Description |
|---|---|
static void |
clear()
Clear any nested diagnostic information if any.
|
static java.util.Stack |
cloneStack()
Clone the diagnostic context for the current thread.
|
static java.lang.String |
get()
Never use this method directly, use the
LoggingEvent.getNDC() method instead. |
static int |
getDepth()
Get the current nesting depth of this diagnostic context.
|
static void |
inherit(java.util.Stack stack)
Inherit the diagnostic context of another thread.
|
static java.lang.String |
peek()
Looks at the last diagnostic context at the top of this NDC
without removing it.
|
static java.lang.String |
pop()
Clients should call this method before leaving a diagnostic
context.
|
static void |
push(java.lang.String message)
Push new diagnostic context information for the current thread.
|
static void |
remove()
Remove the diagnostic context for this thread.
|
static void |
setMaxDepth(int maxDepth)
Set maximum depth of this diagnostic context.
|
public static void clear()
This method is equivalent to calling the setMaxDepth(int)
method with a zero maxDepth
argument.
public static java.util.Stack cloneStack()
Internally a diagnostic context is represented as a stack. A given thread can supply the stack (i.e. diagnostic context) to a child thread so that the child can inherit the parent thread's diagnostic context.
The child thread uses the inherit
method to
inherit the parent's diagnostic context.
public static void inherit(java.util.Stack stack)
The parent thread can obtain a reference to its diagnostic
context using the cloneStack()
method. It should
communicate this information to its child so that it may inherit
the parent's diagnostic context.
The parent's diagnostic context is cloned before being inherited. In other words, once inherited, the two diagnostic contexts can be managed independently.
In java, a child thread cannot obtain a reference to its parent, unless it is directly handed the reference. Consequently, there is no client-transparent way of inheriting diagnostic contexts. Do you know any solution to this problem?
stack
- The diagnostic context of the parent thread.public static java.lang.String get()
LoggingEvent.getNDC()
method instead.public static int getDepth()
setMaxDepth(int)
public static java.lang.String pop()
The returned value is the value that was pushed last. If no context is available, then the empty string "" is returned.
public static java.lang.String peek()
The returned value is the value that was pushed last. If no context is available, then the empty string "" is returned.
public static void push(java.lang.String message)
The contents of the message
parameter is
determined solely by the client.
message
- The new diagnostic context information.public static void remove()
Each thread that created a diagnostic context by calling
push(java.lang.String)
should call this method before exiting. Otherwise,
the memory used by the thread cannot be reclaimed by the
VM.
As this is such an important problem in heavy duty systems and
because it is difficult to always guarantee that the remove
method is called before exiting a thread, this method has been
augmented to lazily remove references to dead threads. In
practice, this means that you can be a little sloppy and
occasionally forget to call remove()
before exiting a
thread. However, you must call remove
sometime. If
you never call it, then your application is sure to run out of
memory.
public static void setMaxDepth(int maxDepth)
maxDepth
, then no
action is taken.
This method is a convenient alternative to multiple pop()
calls. Moreover, it is often the case that at the end of
complex call sequences, the depth of the NDC is
unpredictable. The setMaxDepth
method circumvents
this problem.
For example, the combination
void foo() { int depth = NDC.getDepth(); ... complex sequence of calls NDC.setMaxDepth(depth); }ensures that between the entry and exit of foo the depth of the diagnostic stack is conserved.
getDepth()
Copyright © 1999-2016 Apache Software Foundation. All Rights Reserved.


BY EDWIN JAHIEL
THE BIG ONE (1997) *** 1/2 Directed and written by Michael Moore. Produced by Kathleen Gylnn. Cast: Michael Moore with appearances by Garrison Keillor, Studs Terkel, Rick Neilson, Phil Knight and many ordinary people. A BBC-Dog Eat Dog productio released by Miramax. 94 min. PG-13 .
Did Michael Moore plot the release of his film close to that of "Bulworth"'s? Did he contribute to the current turmoil in Indonesia? Of course not, but his timing could not have been better.Both new films denounce the political-big business establishment, while the Asian country enters the argument in Moore's interviews of Nike's CEO about shoes made by child labor paid just pennies an hour.
The initials MM long stood for Marilyn Monroe, but Michael Moore's are becoming a close second. The contrast between the two personalities is like Beauty Marilyn and Moore the capital-exposing Beast .The burly, paunchy, embattled prole in baggy, slept-in clothes and his eternal baseball caps, is perfect as a self-appointed vox populi for the masses of workers in the United States, especially those laid off by large concerns.
The title comes from a radio interview where facetious MM proposes "The Big One" as a replacement for the un-catchy name of our country. But it also stands for the big corporations that make so many employees "redundant" as the British say, without regard to what happens to them next. That was the theme of "Roger and Me," (1989) the wild documentary that made Moore a celebrity as, in quest of answers, he chased after the Big Boss of General Motors. The series "TV Nation" (1994) lasted too little because their special humor applied to serious subjects did not lay any golden eggs for the network. Also in 1994, his satirical fiction feature "Canadian Bacon," mis-plotted and misguided was a bore that could fry but not fly. Wisely, MM is back to the "Roger" mode, in which he's at his best in harrassing corporations. There may be a sense of deja vu in "The Big One," but its truths and facts are worth hammering on and expanding.
Moore became a best-selling author with his book "Downsize This!," a collection of mocking, sharp, take-no-prisoners essays on today's America. During the 1992 election campaign days, his publishers sent him on a book-signing tour of close to 50 cities. Unbeknownst to them, MM had the very bright idea of having a camera crew along to record everything, from casual chats, to talking to groups, to his unconventional public lectures, to his wagging his finger --always with a smiling presence -- at corporate persons.
Embattled Moore has developed as a first-rate stand-up comic. Faithful to his muckraking, to telling it like it is, to his protest mission, he gives hilarious "performances" stressing the theme of Them and Us. He leaves few stones unturned and few corporations un-stoned. Every chance he has, he seeks out bigwigs of business (who by and large elude him), or their spokespeople. His basic question is simply something like "Do you know what you are doing to workers, and why do you do it?"
True, in 1992 the economy is booming in a period of fat cows, even obese ones, but this does not help the many job-losers whose companies take their business to places such as Indonesia or Mexico.
Itinerant evangelist Moore cleverly starts his travels with Centralia, Illinois, where the PayDay candy bar company causes much suffering by closing its local works.You couldn't ask for more pointed irony. As Voltaire said "If God did not exist, he should have been invented." Pay Day does exist.
There and in Cedar Rapids, Iowa, sad men, and mothers lucky enough to have found employment, speak of their multiple part-time jobs that exhaust them and keep them away from their families.In Des Moines, non-redundant but part-time, minimum -wage employees at the Borders Books store, talk of their problems. (Later we find out that encouraged by Moore they have unionized. This results in other Borders stores banning MM from further book-signings and adding grist to his mill! )
The local headquarters for presidential candidate Steven Forbes provide a not-so-irrelevant diversion about "Who he ?" The young campaign manager is not particularly savvy about his employer, while Moore calls attention to the fact that Forbes, as clearly seen on TV footage, never blinks, a most bizarre condition, as per a medical specialist. Could Forbes be an E.T.?
MM's scattershot approach is a delight. In Milwaukee, Johnson Controls made half a billion in profits in the last three years, yet is relocating to Mexico. Although unable to see the head honcho, Moore does send him a mammoth-sized check ... for 80 cents, the hourly earnings of Mexican workers, as well as a Certificate for Downsizing. In that city too is the head office of the temp workers agency Manpower, Inc. which, declares Moore, is now the largest employer in the country.
In a symbolic gag in Madison, Wisconsin, MM leads to the Capitol a bunch of welfare people who will be happy to clean, for nothing, the Governor's office. In Minneapolis-St.Paul, chatting with a tattoed ex-convict in a cafeteria, he is told something scary as well as surrealistic: TWA hires, at $2 an hour, prisoners in jails to handle by telephone some of the airline's reservations services.
Moore's attempts to meet with CEOs are met by rebuffs and evasions that range from polite to hostile. No matter whom he talks to, it is almost creepy to see that all business underlings are protective of their companies, transparently insecure and scared of saying or doing anything that might get their heads cut off.
The answers to Moore's questions are no more than what one expects. The alibi-mantras include "To keep the company competitive," "Our responsibility to our shareholders," "To increase earnings." Profit is the A to Z motive. The film could have had other titles too, like those of the American classic "Greed" for the business side or the Russian classic "Stalker" for Moore's methods. So, he says to a roaring audience, how about letting GM sell crack and make even bigger money?
In Chicago there is a short parenthesis as the invaluable Studs Terkel has MM as his radio guest. In a true meeting of minds, humor is set aside in favor of seriousmess and eagerness. This encounter runs only for a few, touching minutes.
When Phil Knight, the CEO of Nike, Number 3 on MM's long hit list, agrees to a meeting plus follow-up, it comes as a surprise. Both Knight and Moore show good humor. It leads, however, to a cul-de-sac. Knight stands his ground, comes up with a correction ("I checked: Indonesian workers are not 12 but 14"), believes (or pretends) that Americans don't want to make shoes. Moore bets him he can come up with 500 people willing to do it. But at a rally in Flint, by my count, fewer than 200 show up. No wonder that Moore's report skips this fact. At least he will contribute $10,000 to the unemployed if Knight matches this, which the Nike billionaire does.
These are merely a few examples of the richness of the documentary's in episodes and details. The crusader has a knack for making comedy from painful crises and getting a lot of laughs, yet without losing sight of plights and pathos. Though now a capitalist from royalties, he remains faithful to his social credos, contributes large sums to the needy, even has a deal with film distributors Miramax to give away half of "The Big One"'s profits.
As in all movies dealing with social justice and injustices, and as in all agit-prop, Moore's work certainly simplifies vastly complex issues. His sole consideration, in which he excels, is the human element. Critical reception at festivals (Toronto 97, Berlin 98) has been very good. The general public's reactions may ultimately depend on viewers' income. Those unemployed or seriously underpaid will love the movie. Earners of high five or low six figures, will like it if they are socially conscious. Above this level there may be few takers, but it's no loss of audiences, since the very wealthy seldom have time to spend on movies.
" Le mauvais gout mene au crime" (Stendhal)
Edwin Jahiel's movie reviews are at http://www.prairienet.org/ejahiel
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


 She is such a cute dog.
I like playing video games. THE END. Goodbye.
no, im still here.
I like to play video games, taking funny pictures of my dog (I have a lot of them), and spending time with my family. I also like readdownload.pnging books like WoF and Warriors because they are good and don't judge me and I dont reccomend reading it to the class because of some... reasons. Like this one. There is a lot more blood than that in the book series, though.


Available Funds: $
0
Name of transaction
Transaction amount
Add Funds
Subtract Funds
Transaction
Amount


Developers On Staff
New Developer's First Name
New Developer's School
New Developer's Language
submit


WEEK 7
Soldering | Electronics
1. Capacitor- a passive two-terminal electronic component that stores electrical energy in an electric field.
2. Transistor- a semiconductor device used to amplify or switch electronic signals and electrical power
3. Resistor- it controls the flow of current to other components.
4. LED- a two-lead semiconductor light source
5. Diode- allows an electric current to pass in one direction (called the diode's forward direction)
6. Potentiometer- voltage divider used for measuring electric potential
7. Breadboard- make quick electrical connections between components-
8. Multimeter- electronic measuring instrument that combines several measurement functions in one unit
9. Switch- open or close the electrical circuit, turning the flow of electricity on or off.


A library for using Material Icons inside your Angular project.
npm install ng-mat-icons
NgMatIconsModule
in your module.
The recommended way is to include it in a SharedModule
,
which also exports it. Then import the SharedModule
in other modules of your application.
{{ setupSnippets[0] }}
{{ setupSnippets[1] }}
The library contains one component called NgMatIcons
.
This can be used with the <nmi-icon>
HTML tag.
You can specify several attributes to customize the icon.
By default the icon will inherit the size and color from the parent element.
The content between the HTML tags defines which icon to display. It can be given using the icon name or the code point. You can find the full list of icons on the Material Design website, while the list of code points can be found in the material-design-icons GitHub repo.
{{ iconSnippet[0] }}
{{ iconSnippet[1] }}
By default the icon will be hidden for screen readers by using the aria-hidden="true"
attribute.
Using the label
attribute you can specify what gets displayed for screen readers by the aria-label
attribute. Setting this attribute will set aria-hidden
to false.
{{ labelSnippet[0] }}
The icon will inherit the font size from the parent element.
You can specify the size
attribute to use the recommended sizes specified in the
Material Icons Guide.
The size can be given in pixels (18
, 24
, 36
or 48
) or using
sm
, md
, lg
or xl
.
{{ sizeSnippet[0] }}
{{ sizeSnippet[1] }}
{{ sizeSnippet[2] }}
{{ sizeSnippet[3] }}
{{ sizeSnippet[4] }}
{{ sizeSnippet[5] }}
{{ sizeSnippet[6] }}
{{ sizeSnippet[7] }}
The icon inherits the color from the parent element by default.
This can be overriden to use the colors specified in the
Material Icons Guide by the color
attribute.
If the color
is set to light
or dark
then the inactive
property
can also be set to true
.
The inactive
attribute only works if the color
attribute is set.
{{ colorSnippet[0] }}
{{ colorSnippet[1] }}
{{ colorSnippet[2] }}
{{ colorSnippet[3] }}
This project can be found on GitHub. Contributions are welcome!


| lesson 34 A happy discovery |
| Antique shops exert a peculiar fascination on a great many people. |
| The more expensive kind of antique shop where rare objects are beautifully displayed in glass cases to keep them free from dust is usually a forbidding place. |
| But no one has to muster up courage to enter a less pretentious antique shop. |
| There is always hope that in its labyrinth of musty, dark, disordered rooms a real rarity will be found amongst the piles of assorted junk that litter the floors. |
| No one discovers a rarity by chance. |
| A truly dedicated bargain hunter must have patience, and above all, the ability to recognize the worth of something when he sees it. |
| To do this, he must be at least as knowledgeable as the dealer. |
| Like a scientist bent on making a discovery, he must cherish the hope that one day he will be amply rewarded. |
| My old friend, Frank Halliday, is just such a person. |
| He has often described to me how he picked up a masterpiece for a mere $50. |
| One Saturday morning, Frank visited an antique shop in my neighbourhood. |
| As he had never been there before, he found a great deal to interest him. |
| The morning passed rapidly and Frank was about to leave when he noticed a large packing case lying on the floor. |
| The dealer told him that it had just come in, but that he could not be bothered to open it. |
| Frank begged him to do so and the dealer reluctantly prised it open. |
| The contents were disappointing. |
| Apart from an interesting-looking carved dagger, the box was full of crockery, much of it broken. |
| Frank gently lifted the crockery out of the box and suddenly noticed a miniature painting at the bottom of the packing case. |
| As its composition and line reminded him of an Italian painting he knew well, he decided to buy it. |
| Glancing at it briefly, the dealer told him that it was worth $50. |
| Frank could hardly conceal his excitement, for he knew that he had made a real discovery. |
| The tiny painting proved to be an unknown masterpiece by Correggio and was worth hundreds of thousands of pounds. |


3.0.0
Type: string
Type: string
Type: {ringserverVersion: string, serverId: string}
Type: {accessTime: DateTime, streams: Array<StreamStat>}
(DateTime)
(Array<StreamStat>)
Type: string
Web connection to a Ringserver.
(string?)
optional host to connect to, defaults to IRIS. This maybe a full URL.
(number?)
optional host to connect to, defaults to 80
Gets/Sets the remote host to connect to.
(string?)
optional new value if setting
RingserverConnection
:
new value if getting, this if setting
Gets/Sets the remote port to connect to.
(number?)
optional new value if setting
(number | RingserverConnection)
:
new value if getting, this if setting
Get/Set the timeout in seconds for the request. Default is 30.
(number?)
optional new value if setting
RingserverConnection
:
new value if getting, this if setting
Pulls id result from ringserver /id parsed into an object with 'ringserverVersion' and 'serverId' fields.
Promise<RingserverVersion>
:
Result as a Promise.
Use numeric level (1-6) to pull just IDs from ringserver. In a default ringserver, level=1 would return all networks like CO and level=2 would return all stations like CO_JSC If level is falsy/missing, level=6 is used. The optional matchPattern is a regular expression, so for example '.+_JSC_00_HH.' would get all HH? channels from any station name JSC.
Promise<Array<string>>
:
Result as a Promise.
Pull streams, including start and end times, from the ringserver. The optional matchPattern is a regular expression, so for example '.+_JSC_00_HH.' would get all HH? channels from any station name JSC. Result returned is an Promise.
(string)
regular expression to match
Promise<StreamsResult>
:
promise to object with 'accessTime' as a DateTime
and 'streams' as an array of StreamStat objects.
Extract one StreamStat per station from an array of channel level StreamStats. The start and end times are the min and max times for all the channels within the station. Can be used to get most time of most recent packet from the stations to give an idea of current latency.
(Array<StreamStat>)
array of channel level StreamStats
Array<StreamStat>
:
array of station level StreamStats
(string)
(NslcId)
Split type, networkCode, stationCode, locationCode and channelCode from a ringserver id formatted like net_sta_loc_chan/type
(string)
id string to split
NslcWithType
:
object with the split fields
Object to hold start and end times for a key, usually channel or station.
Type: DateTime
Type: DateTime
Calculates latency time difference between last packet and current time.
(DateTime?)
time latency is calculated relative to
Duration
:
latency


/**
* Actions
* @enum {string}
*/
var Actions = {
/** reply to the message */
REPLY:'REPLY',
/** terminate the message */
CLOSE:'CLOSE',
/** drop off the message */
LEAVE:'LEAVE',
ACCEPT:'ACCEPT',
REJECT:'REJECT',
OK:'OK',
/** add a member to the message */
FORWARD:'FORWARD',
/** substitute another member for yourself in the message */
DELEGATE:'DELEGATE'
};
/**
* Message Object
* @typedef {Object} Message
* @property {strind} id The message UUID
* @property {string} originator The ZypHub UUID of the entity that sent the last update to this message
* @property {Object} header The message header
* @property {string} header.owner The ZypHub UUID of the message owner
* @property {string} header.originalID The enterprise UUID of the message owner
* @property {Object} time Message timestamps
* @property {string} time.created The UTC timestamp of when the message was created
* @property {string} time.modified The UTC timestamp of when the message was last modified
* @property {string[]} allowableActions Actions that can be passed to Zyp.update for this message
* @property {Object} state The message state
* @property {number} state.startMemberCount The number of members in the message at time of creation
* @property {number} state.curMemberCount The current number of members in the message
* @property {number} state.leaves The number of members that have left the message
* @property {number} state.delegates The number of members that have delegated the message
* @property {number} state.forwards The number of members that have been added to the message by forwarding
* @property {number} state.oks The number of members that have acknowledged the message (FYI pattern only)
* @property {number} state.rejects The number of members that have rejected the message (FCFS pattern only)
* @property {number} state.accepts The number of members that have accepted the message (FCFS pattern only)
* @property {number} state.maxAccepts The number of accepts allowed on the message (FCFS pattern only)
* @property {boolean} state.open Is the message still open?
* @property {Object[]} state.members Array of members state in the conversation
* @property {Object} state.members.member Member information
* @property {string} state.members.member._id The ZypHub UUID of the member
* @property {string} state.members.member.originalId The enterprise UUID of the member
* @property {string} state.members.eventTime The UTC timestamp of the last event this member posted to the message
* @property {string} state.members.lastEvent The last event this member posted to the message
* @property {Object} content Message content
* @property {string} content.message The text of the original message
* @property {Object[]} content.replies Reply content to the original message
* @property {Object} content.replies.origin The member that created this reply
* @property {string} content.replies.origin._id The ZypHub UUID of the member
* @property {string} content.replies.origin.originalId The enterprise UUID of the member
* @property {string} content.replies.content The text of the reply
* @property {string} content.replies._id The UUID of the reply
* @property {string} content.replies.created The UTC timestamp of when the reply was created
* @property {Object} envelope The message envelope
* @property {string} envelope.pattern The message pattern
* @property {string} envelope.latestMember The ZypHub UUID of the last member to modify this message
* @property {Object} envelope.origin The message creator
* @property {string} envelope.origin._id The ZypHub UUID of the member
* @property {string} envelope.origin.originalId The enterprise UUID of the member
* @property {number} envelope.priority The priority of the message (N/A for now)
* @property {Object[]} envelope.context The context address of the message
* @property {Object[]} envelope.members The current members in the message
* @property {string} envelope.members._id The ZypHub UUID of the member
* @property {string} envelope.members.originalId The enterprise UUID of the member
*/


Pat's Salmon Cookies
Home
About Us
Buy Our Stuff!
Upcoming Events
Contact Us
Sales Data
Store Update


CodeChef SNU Chapter hosts events round the year, with CP expeerts to Developers, Freshers to Interns, Working Professionals to Students. We believe, learning is never ending and hence every experience matters! Join us in Events by subscribing to our newsletter.
SUBSCRIBECurrent Events will be shown here, keep checking here for currently live events!
Interested in hosting events in collaboration with us? We collaborate on Competitive Coding Events only. If you want to host events with us contact us through mail.
Click Here to Collab


Interface Query<T>
-
- Type Parameters:
T
- the type of Entity bean this query will fetch.
- All Known Subinterfaces:
SpiFetchGroupQuery<T>
public interface Query<T>
Object relational query for finding a List, Set, Map or single entity bean.Example: Create the query using the API.
List<Order> orderList = DB.find(Order.class) .where() .like("customer.name","rob%") .gt("orderDate",lastWeek) .order("customer.id, id desc") .setMaxRows(50) .findList(); ...
Example: The same query using the query language
String oql = +" where customer.name like :custName and orderDate > :minOrderDate " +" order by customer.id, id desc " +" limit 50 "; List<Order> orderList = DB.createQuery(Order.class, oql) .setParameter("custName", "Rob%") .setParameter("minOrderDate", lastWeek) .findList(); ...
AutoTune
Ebean has built in support for "AutoTune". This is a mechanism where a query can be automatically tuned based on profiling information that is collected.
This is effectively the same as automatically using select() and fetch() to build a query that will fetch all the data required by the application and no more.
It is expected that AutoTune will be the default approach for many queries in a system. It is possibly not as useful where the result of a query is sent to a remote client or where there is some requirement for "Read Consistency" guarantees.
Query Language
Partial Objects
The find and fetch clauses support specifying a list of properties to fetch. This results in objects that are "partially populated". If you try to get a property that was not populated a "lazy loading" query will automatically fire and load the rest of the properties of the bean (This is very similar behaviour as a reference object being "lazy loaded").
Partial objects can be saved just like fully populated objects. If you do this you should remember to include the "Version" property in the initial fetch. If you do not include a version property then optimistic concurrency checking will occur but only include the fetched properties. Refer to "ALL Properties/Columns" mode of Optimistic Concurrency checking.
[ select [ ( * | {fetch properties} ) ] ] [ fetch {path} [ ( * | {fetch properties} ) ] ] [ where {predicates} ] [ order by {order by properties} ] [ limit {max rows} [ offset {first row} ] ]
SELECT [ ( * | {fetch properties} ) ]
With the select you can specify a list of properties to fetch.
FETCH {path} [ ( * | {fetch properties} ) ]
With the fetch you specify the associated property to fetch and populate. The path is a OneToOne, ManyToOne, OneToMany or ManyToMany property.
For fetch of a path we can optionally specify a list of properties to fetch. If you do not specify a list of properties ALL the properties for that bean type are fetched.
WHERE {list of predicates}
The list of predicates which are joined by AND OR NOT ( and ). They can include named (or positioned) bind parameters. These parameters will need to be bound by
setParameter(String, Object)
.ORDER BY {order by properties}
The list of properties to order the result. You can include ASC (ascending) and DESC (descending) in the order by clause.
LIMIT {max rows} [ OFFSET {first row} ]
The limit offset specifies the max rows and first row to fetch. The offset is optional.
Examples of Ebean's Query Language
Find orders fetching its id, shipDate and status properties. Note that the id property is always fetched even if it is not included in the list of fetch properties.
select (shipDate, status)
Find orders with a named bind variable (that will need to be bound via
setParameter(String, Object)
).where customer.name like :custLike
Find orders and also fetch the customer with a named bind parameter. This will fetch and populate both the order and customer objects.
fetch customer where customer.id = :custId
Find orders and also fetch the customer, customer shippingAddress, order details and related product. Note that customer and product objects will be "Partial Objects" with only some of their properties populated. The customer objects will have their id, name and shipping address populated. The product objects (associated with each order detail) will have their id, sku and name populated.
fetch customer (name) fetch customer.shippingAddress fetch details fetch details.product (sku, name)
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
Query.LockType
The lock type (strength) to use with query FOR UPDATE row locking.static class
Query.LockWait
FOR UPDATE wait mode.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods Modifier and Type Method Description Query<T>
alias(String alias)
Set root table alias.Query<T>
apply(FetchPath fetchPath)
Apply the path properties replacing the select and fetch clauses.Query<T>
asDraft()
Execute the query against the draft set of tables.<D> DtoQuery<D>
asDto(Class<D> dtoClass)
Convert the query to a DTO bean query.Query<T>
asOf(Timestamp asOf)
Perform an 'As of' query using history tables to return the object graph as of a time in the past.UpdateQuery<T>
asUpdate()
Convert the query to a UpdateQuery.void
cancel()
Cancel the query execution if supported by the underlying database and driver.Query<T>
copy()
Return a copy of the query.int
delete()
Execute as a delete query deleting the 'root level' beans that match the predicates in the query.int
delete(Transaction transaction)
Execute as a delete query returning the number of rows deleted using the given transaction.boolean
exists()
Execute the query returning true if a row is found.Query<T>
fetch(String path)
Specify a path to fetch eagerly including all its properties.Query<T>
fetch(String path, FetchConfig fetchConfig)
Additionally specify a JoinConfig to specify a "query join" and or define the lazy loading query.Query<T>
fetch(String path, String fetchProperties)
Specify a path to fetch eagerly including specific properties.Query<T>
fetch(String path, String fetchProperties, FetchConfig fetchConfig)
Additionally specify a FetchConfig to use a separate query or lazy loading to load this path.Query<T>
fetchCache(String path)
Fetch the path eagerly using L2 cache.Query<T>
fetchCache(String path, String fetchProperties)
Fetch the path and properties using L2 bean cache.Query<T>
fetchLazy(String path)
Fetch the path lazily (via batch lazy loading).Query<T>
fetchLazy(String path, String fetchProperties)
Fetch the path and properties lazily (via batch lazy loading).Query<T>
fetchQuery(String path)
Fetch the path eagerly using a "query join" (separate SQL query).Query<T>
fetchQuery(String path, String fetchProperties)
Fetch the path and properties using a "query join" (separate SQL query).ExpressionList<T>
filterMany(String propertyName)
This applies a filter on the 'many' property list rather than the root level objects.int
findCount()
Return the count of entities this query should return.void
findEach(int batch, Consumer<List<T>> consumer)
Execute findEach streaming query batching the results for consuming.void
findEach(Consumer<T> consumer)
Execute the query processing the beans one at a time.void
findEachWhile(Predicate<T> consumer)
Execute the query using callbacks to a visitor to process the resulting beans one at a time.FutureRowCount<T>
findFutureCount()
Execute find row count query in a background thread.FutureIds<T>
findFutureIds()
Execute find Id's query in a background thread.FutureList<T>
findFutureList()
Execute find list query in a background thread. List
findIds()
Execute the query returning the list of Id's.QueryIterator<T>
findIterate()
Execute the query iterating over the results.Stream<T>
findLargeStream()
Deprecated.List<T>
findList()
Execute the query returning the list of objects.<K> Map<K,T>
findMap()
Execute the query returning a map of the objects.T
findOne()
Execute the query returning either a single bean or null (if no matching bean is found).Optional<T>
findOneOrEmpty()
Execute the query returning an optional bean.PagedList<T>
findPagedList()
Return a PagedList for this query using firstRow and maxRows.Set<T>
findSet()
Execute the query returning the set of objects. A
findSingleAttribute()
Execute a query returning a single value of a single property/column. List
findSingleAttributeList()
Execute the query returning a list of values for a single property.Stream<T>
findStream()
Execute the query returning the result as a Stream.List<Version<T>>
findVersions()
Return versions of a @History entity bean.List<Version<T>>
findVersionsBetween(Timestamp start, Timestamp end)
Return versions of a @History entity bean between the 2 timestamps.Query<T>
forUpdate()
Execute using "for update" clause which results in the DB locking the record.Query<T>
forUpdateNoWait()
Execute using "for update" clause with "no wait" option.Query<T>
forUpdateSkipLocked()
Execute using "for update" clause with "skip locked" option.Class<T>
getBeanType()
Return the type of beans being queried.ExpressionFactory
getExpressionFactory()
Return the ExpressionFactory used by this query.int
getFirstRow()
Return the first row value.Query.LockType
getForUpdateLockType()
Return the lock type (strength) to use with "for update".Query.LockWait
getForUpdateLockWait()
Return the "for update" wait mode to use.String
getGeneratedSql()
Return the sql that was generated for executing this query.Object
getId()
Return the Id value.Class<? extends T>
getInheritType()
Returns the inherit type.int
getMaxRows()
Return the max rows for this query.QueryType
getQueryType()
Return the type of query being executed.ExpressionList<T>
having()
Add Expressions to the Having clause return the ExpressionList.Query<T>
having(Expression addExpressionToHaving)
Add an expression to the having clause returning the query.boolean
isAutoTuned()
Returns true if this query was tuned by autoTune.boolean
isCountDistinct()
Return true if this is countDistinct query.boolean
isForUpdate()
Return true if this query has forUpdate set.OrderBy<T>
order()
Return the OrderBy so that you can append an ascending or descending property to the order by clause.Query<T>
order(String orderByClause)
Set the order by clause replacing the existing order by clause if there is one.OrderBy<T>
orderBy()
Return the OrderBy so that you can append an ascending or descending property to the order by clause.Query<T>
orderBy(String orderByClause)
Set the order by clause replacing the existing order by clause if there is one.Query<T>
orderById(boolean orderById)
Controls, if paginated queries should always append an 'order by id' statement at the end to guarantee a deterministic sort result.Query<T>
select(FetchGroup<T> fetchGroup)
Apply the fetchGroup which defines what part of the object graph to load.Query<T>
select(String fetchProperties)
Specify the properties to fetch on the root level entity bean in comma delimited format.Query<T>
setAllowLoadErrors()
Execute the query allowing properties with invalid JSON to be collected and not fail the query.Query<T>
setAutoTune(boolean autoTune)
Explicitly specify whether to use AutoTune for this query.Query<T>
setBaseTable(String baseTable)
Set the base table to use for this query.Query<T>
setBeanCacheMode(CacheMode beanCacheMode)
Set the mode to use the bean cache when executing this query.Query<T>
setBufferFetchSizeHint(int fetchSize)
A hint which for JDBC translates to the Statement.fetchSize().Query<T>
setCountDistinct(CountDistinctOrder orderBy)
Extended version for setDistinct in conjunction with "findSingleAttributeList";Query<T>
setDisableLazyLoading(boolean disableLazyLoading)
Set true if you want to disable lazy loading.Query<T>
setDisableReadAuditing()
Disable read auditing for this query.Query<T>
setDistinct(boolean isDistinct)
Set whether this query uses DISTINCT.Query<T>
setDocIndexName(String indexName)
Set the index(es) to search for a document store which uses partitions.Query<T>
setFirstRow(int firstRow)
Set the first row to return for this query.Query<T>
setId(Object id)
Set the Id value to query.Query<T>
setIncludeSoftDeletes()
Execute the query including soft deleted rows.Query<T>
setInheritType(Class<? extends T> type)
Restrict the query to only return subtypes of the given inherit type.Query<T>
setLabel(String label)
Set a label on the query.Query<T>
setLazyLoadBatchSize(int lazyLoadBatchSize)
Set the default lazy loading batch size to use.Query<T>
setLoadBeanCache(boolean loadBeanCache)
Will be deprecated - migrate to use setBeanCacheMode(CacheMode.RECACHE).Query<T>
setMapKey(String mapKey)
Set the property to use as keys for a map.Query<T>
setMaxRows(int maxRows)
Set the maximum number of rows to return in the query.Query<T>
setOrder(OrderBy<T> orderBy)
Set an OrderBy object to replace any existing OrderBy clause.Query<T>
setOrderBy(OrderBy<T> orderBy)
Set an OrderBy object to replace any existing OrderBy clause.Query<T>
setParameter(int position, Object value)
Set an ordered bind parameter according to its position.Query<T>
setParameter(Object value)
Bind the next positioned parameter.Query<T>
setParameter(String name, Object value)
Set a named bind parameter.Query<T>
setParameters(Object... values)
Bind all the positioned parameters.Query<T>
setPersistenceContextScope(PersistenceContextScope scope)
Specify the PersistenceContextScope to use for this query.Query<T>
setProfileLocation(ProfileLocation profileLocation)
Set the profile location of this query.Query<T>
setRawSql(RawSql rawSql)
Set RawSql to use for this query.Query<T>
setReadOnly(boolean readOnly)
When set to true when you want the returned beans to be read only.Query<T>
setTimeout(int secs)
Set a timeout on this query.default Query<T>
setUseCache(boolean useCache)
Set this to false to not use the bean cache.Query<T>
setUseDocStore(boolean useDocStore)
Set to true if this query should execute against the doc store.default Query<T>
setUseQueryCache(boolean enabled)
Query<T>
setUseQueryCache(CacheMode queryCacheMode)
Set theCacheMode
to use the query for executing this query.ExpressionList<T>
text()
Add Full text search expressions for Document store queries.int
update()
Execute the UpdateQuery returning the number of rows updated.int
update(Transaction transaction)
Execute the UpdateQuery returning the number of rows updated using the given transaction.Query<T>
usingConnection(Connection connection)
Execute the query using the given connection.Query<T>
usingDatabase(Database database)
Execute the query using the given database.Query<T>
usingTransaction(Transaction transaction)
Execute the query using the given transaction.Set<String>
validate()
Returns the set of properties or paths that are unknown (do not map to known properties or paths).ExpressionList<T>
where()
Add Expressions to the where clause with the ability to chain on the ExpressionList.Query<T>
where(Expression expression)
Add a single Expression to the where clause returning the query.Query<T>
withLock(Query.LockType lockType)
Execute the query with the given lock type and WAIT.Query<T>
withLock(Query.LockType lockType, Query.LockWait lockWait)
Execute the query with the given lock type and lock wait.
-
-
-
Method Detail
-
asOf
Query<T> asOf(Timestamp asOf)
Perform an 'As of' query using history tables to return the object graph as of a time in the past.To perform this query the DB must have underlying history tables.
- Parameters:
asOf
- the date time in the past at which you want to view the data
-
asDto
<D> DtoQuery<D> asDto(Class<D> dtoClass)
Convert the query to a DTO bean query.We effectively use the underlying ORM query to build the SQL and then execute and map it into DTO beans.
-
asUpdate
UpdateQuery<T> asUpdate()
Convert the query to a UpdateQuery.Typically this is used with query beans to covert a query bean query into an UpdateQuery like the examples below.
int rowsUpdated = new QCustomer() .name.startsWith("Rob") .asUpdate() .set("active", false) .update();;
int rowsUpdated = new QContact() .notes.note.startsWith("Make Inactive"<EMAIL_ADDRESS>.customer.id.equalTo(42) .asUpdate() .set("inactive", true) .setRaw("email = lower(email)") .update();
-
cancel
void cancel()
Cancel the query execution if supported by the underlying database and driver.This must be called from a different thread to the query executor.
-
copy
Query<T> copy()
Return a copy of the query.This is so that you can use a Query as a "prototype" for creating other query instances. You could create a Query with various where expressions and use that as a "prototype" - using this copy() method to create a new instance that you can then add other expressions then execute.
-
setPersistenceContextScope
Query<T> setPersistenceContextScope(PersistenceContextScope scope)
Specify the PersistenceContextScope to use for this query. When this is not set the 'default' configured onDatabaseConfig.setPersistenceContextScope(PersistenceContextScope)
is used - this value defaults toPersistenceContextScope.TRANSACTION
. Note that the same persistence Context is used for subsequent lazy loading and query join queries. Note that #findEach uses a 'per object graph' PersistenceContext so this scope is ignored for queries executed as #findIterate, #findEach, #findEachWhile.- Parameters:
scope
- The scope to use for this query and subsequent lazy loading.
-
setDocIndexName
Query<T> setDocIndexName(String indexName)
Set the index(es) to search for a document store which uses partitions.For example, when executing a query against ElasticSearch with daily indexes we can explicitly specify the indexes to search against.
// explicitly specify the indexes to search query.setDocIndexName("logstash-2016.11.5,logstash-2016.11.6") // search today's index query.setDocIndexName("$today") // search the last 3 days query.setDocIndexName("$last-3")
If the indexName is specified with ${daily} e.g. "logstash-${daily}" ... then we can use $today and $last-x as the search docIndexName like the examples below.
// search today's index query.setDocIndexName("$today") // search the last 3 days query.setDocIndexName("$last-3")
- Parameters:
indexName
- The index or indexes to search against- Returns:
- This query
-
getExpressionFactory
ExpressionFactory getExpressionFactory()
Return the ExpressionFactory used by this query.
-
isAutoTuned
boolean isAutoTuned()
Returns true if this query was tuned by autoTune.
-
setAutoTune
Query<T> setAutoTune(boolean autoTune)
Explicitly specify whether to use AutoTune for this query.If you do not call this method on a query the "Implicit AutoTune mode" is used to determine if AutoTune should be used for a given query.
AutoTune can add additional fetch paths to the query and specify which properties are included for each path. If you have explicitly defined some fetch paths AutoTune will not remove them.
-
setAllowLoadErrors
Query<T> setAllowLoadErrors()
Execute the query allowing properties with invalid JSON to be collected and not fail the query.// fetch a bean with JSON content EBasicJsonList bean= DB.find(EBasicJsonList.class) .setId(42) .setAllowLoadErrors() // collect errors into bean state if we have invalid JSON .findOne(); // get the invalid JSON errors from the bean state Map<String, Exception> errors = server().getBeanState(bean).getLoadErrors(); // If this map is not empty tell we have invalid JSON // and should try and fix the JSON content or inform the user
-
setLazyLoadBatchSize
Query<T> setLazyLoadBatchSize(int lazyLoadBatchSize)
Set the default lazy loading batch size to use.When lazy loading is invoked on beans loaded by this query then this sets the batch size used to load those beans.
- Parameters:
lazyLoadBatchSize
- the number of beans to lazy load in a single batch
-
setIncludeSoftDeletes
Query<T> setIncludeSoftDeletes()
Execute the query including soft deleted rows.This means that Ebean will not add any predicates to the query for filtering out soft deleted rows. You can still add your own predicates for the deleted properties and effectively you have full control over the query to include or exclude soft deleted rows as needed for a given use case.
-
setDisableReadAuditing
Query<T> setDisableReadAuditing()
Disable read auditing for this query.This is intended to be used when the query is not a user initiated query and instead part of the internal processing in an application to load a cache or document store etc. In these cases we don't want the query to be part of read auditing.
-
select
Query<T> select(String fetchProperties)
Specify the properties to fetch on the root level entity bean in comma delimited format.The Id property is automatically included in the properties to fetch unless setDistinct(true) is set on the query.
Use
fetch(String, String)
to specify specific properties to fetch on other non-root level paths of the object graph.List<Customer> customers = DB.find(Customer.class) // Only fetch the customer id, name and status. // This is described as a "Partial Object" .select("name, status") .where.ilike("name", "rob%") .findList();
- Parameters:
fetchProperties
- the properties to fetch for this bean (* = all properties).
-
select
Query<T> select(FetchGroup<T> fetchGroup)
Apply the fetchGroup which defines what part of the object graph to load.
-
fetch
Query<T> fetch(String path, String fetchProperties)
Specify a path to fetch eagerly including specific properties.Ebean will endeavour to fetch this path using a SQL join. If Ebean determines that it can not use a SQL join (due to maxRows or because it would result in a cartesian product) Ebean will automatically convert this fetch query into a "query join" - i.e. use fetchQuery().
// query orders... List<Order> orders = DB.find(Order.class) // fetch the customer... // ... getting the customers name and phone number .fetch("customer", "name, phoneNumber") // ... also fetch the customers billing address (* = all properties) .fetch("customer.billingAddress", "*") .findList();
If columns is null or "*" then all columns/properties for that path are fetched.
// fetch customers (their id, name and status) List<Customer> customers = DB.find(Customer.class) .select("name, status") .fetch("contacts", "firstName,lastName,email") .findList();
- Parameters:
path
- the property path we wish to fetch eagerly.fetchProperties
- properties of the associated bean that you want to include in the fetch (* means all properties, null also means all properties).
-
fetchQuery
Query<T> fetchQuery(String path, String fetchProperties)
Fetch the path and properties using a "query join" (separate SQL query).This is the same as:
fetch(path, fetchProperties, FetchConfig.ofQuery())
This would be used instead of a fetch() when we use a separate SQL query to fetch this part of the object graph rather than a SQL join.
We might typically get a performance benefit when the path to fetch is a OneToMany or ManyToMany, the 'width' of the 'root bean' is wide and the cardinality of the many is high.
- Parameters:
path
- the property path we wish to fetch eagerly.fetchProperties
- properties of the associated bean that you want to include in the fetch (* means all properties, null also means all properties).
-
fetchCache
Query<T> fetchCache(String path, String fetchProperties)
Fetch the path and properties using L2 bean cache.- Parameters:
path
- The path of the beans we are fetching from L2 cache.fetchProperties
- The properties that should be loaded.
-
fetchLazy
Query<T> fetchLazy(String path, String fetchProperties)
Fetch the path and properties lazily (via batch lazy loading).This is the same as:
fetch(path, fetchProperties, FetchConfig.ofLazy())
The reason for using fetchLazy() is to either:
- Control/tune what is fetched as part of lazy loading
- Make use of the L2 cache, build this part of the graph from L2 cache
- Parameters:
path
- the property path we wish to fetch lazily.fetchProperties
- properties of the associated bean that you want to include in the fetch (* means all properties, null also means all properties).
-
fetch
Query<T> fetch(String path, String fetchProperties, FetchConfig fetchConfig)
Additionally specify a FetchConfig to use a separate query or lazy loading to load this path.// fetch customers (their id, name and status) List<Customer> customers = DB.find(Customer.class) .select("name, status") .fetch("contacts", "firstName,lastName,email", FetchConfig.ofLazy(10)) .findList();
- Parameters:
path
- the property path we wish to fetch eagerly.
-
fetch
Query<T> fetch(String path)
Specify a path to fetch eagerly including all its properties.Ebean will endeavour to fetch this path using a SQL join. If Ebean determines that it can not use a SQL join (due to maxRows or because it would result in a cartesian product) Ebean will automatically convert this fetch query into a "query join" - i.e. use fetchQuery().
// fetch customers (their id, name and status) List<Customer> customers = DB.find(Customer.class) // eager fetch the contacts .fetch("contacts") .findList();
- Parameters:
path
- the property path we wish to fetch eagerly.
-
fetchQuery
Query<T> fetchQuery(String path)
Fetch the path eagerly using a "query join" (separate SQL query).This is the same as:
fetch(path, FetchConfig.ofQuery())
This would be used instead of a fetch() when we use a separate SQL query to fetch this part of the object graph rather than a SQL join.
We might typically get a performance benefit when the path to fetch is a OneToMany or ManyToMany, the 'width' of the 'root bean' is wide and the cardinality of the many is high.
- Parameters:
path
- the property path we wish to fetch eagerly
-
fetchCache
Query<T> fetchCache(String path)
Fetch the path eagerly using L2 cache.
-
fetchLazy
Query<T> fetchLazy(String path)
Fetch the path lazily (via batch lazy loading).This is the same as:
fetch(path, FetchConfig.ofLazy())
The reason for using fetchLazy() is to either:
- Control/tune what is fetched as part of lazy loading
- Make use of the L2 cache, build this part of the graph from L2 cache
- Parameters:
path
- the property path we wish to fetch lazily.
-
fetch
Query<T> fetch(String path, FetchConfig fetchConfig)
Additionally specify a JoinConfig to specify a "query join" and or define the lazy loading query.// fetch customers (their id, name and status) List<Customer> customers = DB.find(Customer.class) // lazy fetch contacts with a batch size of 100 .fetch("contacts", FetchConfig.ofLazy(100)) .findList();
-
apply
Query<T> apply(FetchPath fetchPath)
Apply the path properties replacing the select and fetch clauses.This is typically used when the FetchPath is applied to both the query and the JSON output.
-
usingTransaction
Query<T> usingTransaction(Transaction transaction)
Execute the query using the given transaction.
-
usingConnection
Query<T> usingConnection(Connection connection)
Execute the query using the given connection.
-
usingDatabase
Query<T> usingDatabase(Database database)
Execute the query using the given database.
-
findIds
@Nonnull  List findIds()
Execute the query returning the list of Id's.This query will execute against the Database that was used to create it.
-
findIterate
@Nonnull QueryIterator<T> findIterate()
Execute the query iterating over the results.Note that findIterate (and findEach and findEachWhile) uses a "per graph" persistence context scope and adjusts jdbc fetch buffer size for large queries. As such it is better to use findList for small queries.
Remember that with
QueryIterator
you must callQueryIterator.close()
when you have finished iterating the results (typically in a finally block).findEach() and findEachWhile() are preferred to findIterate() as they ensure the jdbc statement and resultSet are closed at the end of the iteration.
This query will execute against the Database that was used to create it.
Query<Customer> query = DB.find(Customer.class) .where().eq("status", Status.NEW) .order().asc("id"); // use try with resources to ensure QueryIterator is closed try (QueryIterator<Customer> it = query.findIterate()) { while (it.hasNext()) { Customer customer = it.next(); // do something with customer ... } }
-
findStream
@Nonnull Stream<T> findStream()
Execute the query returning the result as a Stream.Note that this can support very large queries iterating any number of results. To do so internally it can use multiple persistence contexts.
// use try with resources to ensure Stream is closed try (Stream<Customer> stream = query.findStream()) { stream .map(...) .collect(...); }
-
findLargeStream
@Nonnull @Deprecated Stream<T> findLargeStream()
Deprecated.Deprecated - migrate to findStream.Execute the query returning the result as a Stream.
Note that this uses multiple persistence contexts such that we can use it with a large number of results.
// use try with resources to ensure Stream is closed try (Stream<Customer> stream = query.findLargeStream()) { stream .map(...) .collect(...); }
-
findEach
void findEach(Consumer<T> consumer)
Execute the query processing the beans one at a time.This method is appropriate to process very large query results as the beans are consumed one at a time and do not need to be held in memory (unlike #findList #findSet etc)
Note that findEach (and findEachWhile and findIterate) uses a "per graph" persistence context scope and adjusts jdbc fetch buffer size for large queries. As such it is better to use findList for small queries.
Note that internally Ebean can inform the JDBC driver that it is expecting larger resultSet and specifically for MySQL this hint is required to stop it's JDBC driver from buffering the entire resultSet. As such, for smaller resultSets findList() is generally preferable.
Compared with #findEachWhile this will always process all the beans where as #findEachWhile provides a way to stop processing the query result early before all the beans have been read.
This method is functionally equivalent to findIterate() but instead of using an iterator uses the Consumer interface which is better suited to use with closures.
DB.find(Customer.class) .where().eq("status", Status.NEW) .order().asc("id") .findEach((Customer customer) -> { // do something with customer System.out.println("-- visit " + customer); });
- Parameters:
consumer
- the consumer used to process the queried beans.
-
findEach
void findEach(int batch, Consumer<List<T>> consumer)
Execute findEach streaming query batching the results for consuming.This query execution will stream the results and is suited to consuming large numbers of results from the database.
Typically we use this batch consumer when we want to do further processing on the beans and want to do that processing in batch form, for example - 100 at a time.
- Parameters:
batch
- The number of beans processed in the batchconsumer
- Process the batch of beans
-
findEachWhile
void findEachWhile(Predicate<T> consumer)
Execute the query using callbacks to a visitor to process the resulting beans one at a time.Note that findEachWhile (and findEach and findIterate) uses a "per graph" persistence context scope and adjusts jdbc fetch buffer size for large queries. As such it is better to use findList for small queries.
This method is functionally equivalent to findIterate() but instead of using an iterator uses the Predicate interface which is better suited to use with closures.
DB.find(Customer.class) .fetchQuery("contacts") .where().eq("status", Status.NEW) .order().asc("id") .setMaxRows(2000) .findEachWhile((Customer customer) -> { // do something with customer System.out.println("-- visit " + customer); // return true to continue processing or false to stop return (customer.getId() < 40); });
- Parameters:
consumer
- the consumer used to process the queried beans.
-
findList
@Nonnull List<T> findList()
Execute the query returning the list of objects.This query will execute against the Database that was used to create it.
List<Customer> customers = DB.find(Customer.class) .where().ilike("name", "rob%") .findList();
-
findSet
@Nonnull Set<T> findSet()
Execute the query returning the set of objects.This query will execute against the Database that was used to create it.
Set<Customer> customers = DB.find(Customer.class) .where().ilike("name", "rob%") .findSet();
-
findMap
@Nonnull <K> Map<K,T> findMap()
Execute the query returning a map of the objects.This query will execute against the Database that was used to create it.
You can use setMapKey() so specify the property values to be used as keys on the map. If one is not specified then the id property is used.
Map<String, Product> map = DB.find(Product.class) .setMapKey("sku") .findMap();
-
findSingleAttributeList
@Nonnull  List findSingleAttributeList()
Execute the query returning a list of values for a single property.Example 1:
List<String> names = DB.find(Customer.class) .select("name") .order().asc("name") .findSingleAttributeList();
Example 2:
List<String> names = DB.find(Customer.class) .setDistinct(true) .select("name") .where().eq("status", Customer.Status.NEW) .order().asc("name") .setMaxRows(100) .findSingleAttributeList();
- Returns:
- the list of values for the selected property
-
findSingleAttribute
 A findSingleAttribute()
Execute a query returning a single value of a single property/column.String name = DB.find(Customer.class) .select("name") .where().eq("id", 42) .findSingleAttribute();
-
isCountDistinct
boolean isCountDistinct()
Return true if this is countDistinct query.
-
exists
boolean exists()
Execute the query returning true if a row is found.The query is executed using max rows of 1 and will only select the id property. This method is really just a convenient way to optimise a query to perform a 'does a row exist in the db' check.
Example using a query bean:
boolean userExists = new QContact<EMAIL_ADDRESS>.exists();
Example:
boolean userExists = query() .where().eq("email"<EMAIL_ADDRESS>.exists();
- Returns:
- True if the query finds a matching row in the database
-
findOne
@Nullable T findOne()
Execute the query returning either a single bean or null (if no matching bean is found).If more than 1 row is found for this query then a NonUniqueResultException is thrown.
This is useful when your predicates dictate that your query should only return 0 or 1 results.
// assuming the sku of products is unique... Product product = DB.find(Product.class) .where().eq("sku", "aa113") .findOne(); ...
It is also useful with finding objects by their id when you want to specify further join information.
// Fetch order 1 and additionally fetch join its order details... Order order = DB.find(Order.class) .setId(1) .fetch("details") .findOne(); // the order details were eagerly loaded List<OrderDetail> details = order.getDetails(); ...
- Throws:
javax.persistence.NonUniqueResultException
- if more than one result was found
-
findOneOrEmpty
@Nonnull Optional<T> findOneOrEmpty()
Execute the query returning an optional bean.
-
findVersions
@Nonnull List<Version<T>> findVersions()
Return versions of a @History entity bean.Note that this query will work against view based history implementations but not sql2011 standards based implementations that require a start and end timestamp to be specified.
Generally this query is expected to be a find by id or unique predicates query. It will execute the query against the history returning the versions of the bean.
-
findVersionsBetween
@Nonnull List<Version<T>> findVersionsBetween(Timestamp start, Timestamp end)
Return versions of a @History entity bean between the 2 timestamps.Generally this query is expected to be a find by id or unique predicates query. It will execute the query against the history returning the versions of the bean.
-
delete
int delete()
Execute as a delete query deleting the 'root level' beans that match the predicates in the query.Note that if the query includes joins then the generated delete statement may not be optimal depending on the database platform.
- Returns:
- the number of beans/rows that were deleted.
-
delete
int delete(Transaction transaction)
Execute as a delete query returning the number of rows deleted using the given transaction.Note that if the query includes joins then the generated delete statement may not be optimal depending on the database platform.
- Returns:
- the number of beans/rows that were deleted.
-
update
int update()
Execute the UpdateQuery returning the number of rows updated.- Returns:
- the number of beans/rows updated.
-
update
int update(Transaction transaction)
Execute the UpdateQuery returning the number of rows updated using the given transaction.- Returns:
- the number of beans/rows updated.
-
findCount
int findCount()
Return the count of entities this query should return.This is the number of 'top level' or 'root level' entities.
-
findFutureCount
@Nonnull FutureRowCount<T> findFutureCount()
Execute find row count query in a background thread.This returns a Future object which can be used to cancel, check the execution status (isDone etc) and get the value (with or without a timeout).
- Returns:
- a Future object for the row count query
-
findFutureIds
@Nonnull FutureIds<T> findFutureIds()
Execute find Id's query in a background thread.This returns a Future object which can be used to cancel, check the execution status (isDone etc) and get the value (with or without a timeout).
- Returns:
- a Future object for the list of Id's
-
findFutureList
@Nonnull FutureList<T> findFutureList()
Execute find list query in a background thread.This query will execute in it's own PersistenceContext and using its own transaction. What that means is that it will not share any bean instances with other queries.
- Returns:
- a Future object for the list result of the query
-
findPagedList
@Nonnull PagedList<T> findPagedList()
Return a PagedList for this query using firstRow and maxRows.The benefit of using this over findList() is that it provides functionality to get the total row count etc.
If maxRows is not set on the query prior to calling findPagedList() then a PersistenceException is thrown.
PagedList<Order> pagedList = DB.find(Order.class) .setFirstRow(50) .setMaxRows(20) .findPagedList(); // fetch the total row count in the background pagedList.loadRowCount(); List<Order> orders = pagedList.getList(); int totalRowCount = pagedList.getTotalRowCount();
- Returns:
- The PagedList
-
setParameter
Query<T> setParameter(String name, Object value)
Set a named bind parameter. Named parameters have a colon to prefix the name.// a query with a named parameter String oql = "find order where status = :orderStatus"; List<Order> list = DB.find(Order.class, oql) .setParameter("orderStatus", OrderStatus.NEW) .findList();
- Parameters:
name
- the parameter namevalue
- the parameter value
-
setParameter
Query<T> setParameter(int position, Object value)
Set an ordered bind parameter according to its position. Note that the position starts at 1 to be consistent with JDBC PreparedStatement. You need to set a parameter value for each ? you have in the query.// a query with a positioned parameter String oql = "where status = ? order by id desc"; List<Order> list = DB.createQuery(Order.class, oql) .setParameter(1, OrderStatus.NEW) .findList();
- Parameters:
position
- the parameter bind position starting from 1 (not 0)value
- the parameter bind value.
-
setParameter
Query<T> setParameter(Object value)
Bind the next positioned parameter.// a query with a positioned parameters String oql = "where status = ? and name = ?"; List<Order> list = DB.createQuery(Order.class, oql) .setParameter(OrderStatus.NEW) .setParameter("Rob") .findList();
-
setParameters
Query<T> setParameters(Object... values)
Bind all the positioned parameters.A convenience for multiple calls to
setParameter(Object)
-
setId
Query<T> setId(Object id)
Set the Id value to query. This is used with findOne().You can use this to have further control over the query. For example adding fetch joins.
Order order = DB.find(Order.class) .setId(1) .fetch("details") .findOne(); // the order details were eagerly fetched List<OrderDetail> details = order.getDetails();
-
where
Query<T> where(Expression expression)
Add a single Expression to the where clause returning the query.List<Order> newOrders = DB.find(Order.class) .where().eq("status", Order.NEW) .findList(); ...
-
where
ExpressionList<T> where()
Add Expressions to the where clause with the ability to chain on the ExpressionList. You can use this for adding multiple expressions to the where clause.List<Order> orders = DB.find(Order.class) .where() .eq("status", Order.NEW) .ilike("customer.name","rob%") .findList();
- Returns:
- The ExpressionList for adding expressions to.
- See Also:
Expr
-
text
ExpressionList<T> text()
Add Full text search expressions for Document store queries.This is currently ElasticSearch only and provides the full text expressions such as Match and Multi-Match.
This automatically makes this query a "Doc Store" query and will execute against the document store (ElasticSearch).
Expressions added here are added to the "query" section of an ElasticSearch query rather than the "filter" section.
Expressions added to the where() are added to the "filter" section of an ElasticSearch query.
-
filterMany
ExpressionList<T> filterMany(String propertyName)
This applies a filter on the 'many' property list rather than the root level objects.Typically you will use this in a scenario where the cardinality is high on the 'many' property you wish to join to. Say you want to fetch customers and their associated orders... but instead of getting all the orders for each customer you only want to get the new orders they placed since last week. In this case you can use filterMany() to filter the orders.
List<Customer> list = DB.find(Customer.class) .fetch("orders") .where().ilike("name", "rob%") .filterMany("orders").eq("status", Order.Status.NEW).gt("orderDate", lastWeek) .findList();
Please note you have to be careful that you add expressions to the correct expression list - as there is one for the 'root level' and one for each filterMany that you have.
- Parameters:
propertyName
- the name of the many property that you want to have a filter on.- Returns:
- the expression list that you add filter expressions for the many to.
-
having
ExpressionList<T> having()
Add Expressions to the Having clause return the ExpressionList.Currently only beans based on raw sql will use the having clause.
Note that this returns the ExpressionList (so you can add multiple expressions to the query in a fluent API way).
- Returns:
- The ExpressionList for adding more expressions to.
- See Also:
Expr
-
having
Query<T> having(Expression addExpressionToHaving)
Add an expression to the having clause returning the query.Currently only beans based on raw sql will use the having clause.
This is similar to
having()
except it returns the query rather than the ExpressionList. This is useful when you want to further specify something on the query.- Parameters:
addExpressionToHaving
- the expression to add to the having clause.- Returns:
- the Query object
-
orderBy
Query<T> orderBy(String orderByClause)
Set the order by clause replacing the existing order by clause if there is one.This follows SQL syntax using commas between each property with the optional asc and desc keywords representing ascending and descending order respectively.
-
order
Query<T> order(String orderByClause)
Set the order by clause replacing the existing order by clause if there is one.This follows SQL syntax using commas between each property with the optional asc and desc keywords representing ascending and descending order respectively.
-
order
OrderBy<T> order()
Return the OrderBy so that you can append an ascending or descending property to the order by clause.This will never return a null. If no order by clause exists then an 'empty' OrderBy object is returned.
This is the same as
orderBy()
-
orderBy
OrderBy<T> orderBy()
Return the OrderBy so that you can append an ascending or descending property to the order by clause.This will never return a null. If no order by clause exists then an 'empty' OrderBy object is returned.
This is the same as
order()
-
setOrder
Query<T> setOrder(OrderBy<T> orderBy)
Set an OrderBy object to replace any existing OrderBy clause.
-
setOrderBy
Query<T> setOrderBy(OrderBy<T> orderBy)
Set an OrderBy object to replace any existing OrderBy clause.
-
setDistinct
Query<T> setDistinct(boolean isDistinct)
Set whether this query uses DISTINCT.The select() clause MUST be specified when setDistinct(true) is set. The reason for this is that generally ORM queries include the "id" property and this doesn't make sense for distinct queries.
List<Customer> customers = DB.find(Customer.class) .setDistinct(true) .select("name") .findList();
-
setCountDistinct
Query<T> setCountDistinct(CountDistinctOrder orderBy)
Extended version for setDistinct in conjunction with "findSingleAttributeList";List<CountedValue<Order.Status>> orderStatusCount = DB.find(Order.class) .select("status") .where() .gt("orderDate", LocalDate.now().minusMonths(3)) // fetch as single attribute with a COUNT .setCountDistinct(CountDistinctOrder.COUNT_DESC_ATTR_ASC) .findSingleAttributeList(); for (CountedValue<Order.Status> entry : orderStatusCount) { System.out.println(" count:" + entry.getCount()+" orderStatus:" + entry.getValue() ); } // produces count:3 orderStatus:NEW count:1 orderStatus:SHIPPED count:1 orderStatus:COMPLETE
-
getFirstRow
int getFirstRow()
Return the first row value.
-
setFirstRow
Query<T> setFirstRow(int firstRow)
Set the first row to return for this query.- Parameters:
firstRow
- the first row to include in the query result.
-
getMaxRows
int getMaxRows()
Return the max rows for this query.
-
setMaxRows
Query<T> setMaxRows(int maxRows)
Set the maximum number of rows to return in the query.- Parameters:
maxRows
- the maximum number of rows to return in the query.
-
setMapKey
Query<T> setMapKey(String mapKey)
Set the property to use as keys for a map.If no property is set then the id property is used.
// Assuming sku is unique for products... Map<String,Product> productMap = DB.find(Product.class) .setMapKey("sku") // sku map keys... .findMap();
- Parameters:
mapKey
- the property to use as keys for a map.
-
setUseCache
default Query<T> setUseCache(boolean useCache)
Set this to false to not use the bean cache.This method is now superseded by
setBeanCacheMode(CacheMode)
which provides more explicit options controlled bean cache use.This method is likely to be deprecated in the future with migration over to setUseBeanCache().
-
setBeanCacheMode
Query<T> setBeanCacheMode(CacheMode beanCacheMode)
Set the mode to use the bean cache when executing this query.By default "find by id" and "find by natural key" will use the bean cache when bean caching is enabled. Setting this to false means that the query will not use the bean cache and instead hit the database.
By default findList() with natural keys will not use the bean cache. In that case we need to explicitly use the bean cache.
-
setUseQueryCache
Query<T> setUseQueryCache(CacheMode queryCacheMode)
Set theCacheMode
to use the query for executing this query.
-
setUseQueryCache
default Query<T> setUseQueryCache(boolean enabled)
-
setProfileLocation
Query<T> setProfileLocation(ProfileLocation profileLocation)
Set the profile location of this query. This is used to relate query execution metrics back to a location like a specific line of code.
-
setLabel
Query<T> setLabel(String label)
Set a label on the query.This label can be used to help identify query performance metrics but we can also use profile location enhancement on Finders so for some that would be a better option.
-
setUseDocStore
Query<T> setUseDocStore(boolean useDocStore)
Set to true if this query should execute against the doc store.When setting this you may also consider disabling lazy loading.
-
setReadOnly
Query<T> setReadOnly(boolean readOnly)
When set to true when you want the returned beans to be read only.
-
setLoadBeanCache
Query<T> setLoadBeanCache(boolean loadBeanCache)
Will be deprecated - migrate to use setBeanCacheMode(CacheMode.RECACHE).When set to true all the beans from this query are loaded into the bean cache.
-
setTimeout
Query<T> setTimeout(int secs)
Set a timeout on this query.This will typically result in a call to setQueryTimeout() on a preparedStatement. If the timeout occurs an exception will be thrown - this will be a SQLException wrapped up in a PersistenceException.
- Parameters:
secs
- the query timeout limit in seconds. Zero means there is no limit.
-
setBufferFetchSizeHint
Query<T> setBufferFetchSizeHint(int fetchSize)
A hint which for JDBC translates to the Statement.fetchSize().Gives the JDBC driver a hint as to the number of rows that should be fetched from the database when more rows are needed for ResultSet.
Note that internally findEach and findEachWhile will set the fetch size if it has not already as these queries expect to process a lot of rows. If we didn't then Postgres and MySql for example would eagerly pull back all the row data and potentially consume a lot of memory in the process.
As findEach and findEachWhile automatically set the fetch size we don't have to do so generally but we might still wish to for tuning a specific use case.
-
getGeneratedSql
String getGeneratedSql()
Return the sql that was generated for executing this query.This is only available after the query has been executed and provided only for informational purposes.
-
withLock
Query<T> withLock(Query.LockType lockType)
Execute the query with the given lock type and WAIT.Note that
forUpdate()
is the same aswithLock(LockType.UPDATE)
.Provides us with the ability to explicitly use Postgres SHARE, KEY SHARE, NO KEY UPDATE and UPDATE row locks.
-
withLock
Query<T> withLock(Query.LockType lockType, Query.LockWait lockWait)
Execute the query with the given lock type and lock wait.Note that
forUpdateNoWait()
is the same aswithLock(LockType.UPDATE, LockWait.NOWAIT)
.Provides us with the ability to explicitly use Postgres SHARE, KEY SHARE, NO KEY UPDATE and UPDATE row locks.
-
forUpdate
Query<T> forUpdate()
Execute using "for update" clause which results in the DB locking the record.The same as
withLock(LockType.UPDATE, LockWait.WAIT)
.
-
forUpdateNoWait
Query<T> forUpdateNoWait()
Execute using "for update" clause with "no wait" option.This is typically a Postgres and Oracle only option at this stage.
The same as
withLock(LockType.UPDATE, LockWait.NOWAIT)
.
-
forUpdateSkipLocked
Query<T> forUpdateSkipLocked()
Execute using "for update" clause with "skip locked" option.This is typically a Postgres and Oracle only option at this stage.
The same as
withLock(LockType.UPDATE, LockWait.SKIPLOCKED)
.
-
isForUpdate
boolean isForUpdate()
Return true if this query has forUpdate set.
-
getForUpdateLockWait
Query.LockWait getForUpdateLockWait()
Return the "for update" wait mode to use.
-
getForUpdateLockType
Query.LockType getForUpdateLockType()
Return the lock type (strength) to use with "for update".
-
setBaseTable
Query<T> setBaseTable(String baseTable)
Set the base table to use for this query.Typically this is used when a table has partitioning and we wish to specify a specific partition/table to query against.
QOrder() .setBaseTable("order_2019_05") .status.equalTo(Status.NEW) .findList();
-
getBeanType
Class<T> getBeanType()
Return the type of beans being queried.
-
setInheritType
Query<T> setInheritType(Class<? extends T> type)
Restrict the query to only return subtypes of the given inherit type.List<Animal> animals = new QAnimal() .name.startsWith("Fluffy") .setInheritType(Cat.class) .findList();
- Parameters:
type
- An inheritance subtype of the
-
getInheritType
Class<? extends T> getInheritType()
Returns the inherit type. This is normally the same as getBeanType() returns as long as no other type is set.
-
getQueryType
QueryType getQueryType()
Return the type of query being executed.
-
setDisableLazyLoading
Query<T> setDisableLazyLoading(boolean disableLazyLoading)
Set true if you want to disable lazy loading.That is, once the object graph is returned further lazy loading is disabled.
-
validate
Set<String> validate()
Returns the set of properties or paths that are unknown (do not map to known properties or paths).Validate the query checking the where and orderBy expression paths to confirm if they represent valid properties or paths for the given bean type.
-
orderById
Query<T> orderById(boolean orderById)
Controls, if paginated queries should always append an 'order by id' statement at the end to guarantee a deterministic sort result. This may affect performance. If this is not enabled, and an orderBy is set on the query, it's up to the programmer that this query provides a deterministic result.
-
-


Cache
GettersThe GravCache object is used throughout Grav to store and retrieve cached data.
It uses DoctrineCache library and supports a variety of caching mechanisms. Those include:
APC XCache RedisCache MemCache MemCacheD FileSystem
Traits
Methods
Automatically picks the cache mechanism to use. If you pick one manually it will use that If there is no config option for $driver in the config, or it's set to 'auto', it will pick the best option based on which cache extensions are installed.
Gets a cached entry if it exists based on an id. If it does not exist, it returns false
Stores a new cached entry.
Getter method to get the cache key
Helper method to clear all Grav caches
Set the cache lifetime programmatically
Retrieve the cache lifetime (in seconds)
Details
in
Getters at line 26
__set(
mixed $offset,
mixed $value)
Magic setter method
in
Getters at line 37
mixed
__get(
mixed $offset)
Magic getter method
in
Getters at line 48
boolean
__isset(
mixed $offset)
Magic method to determine if the attribute is set
in
Getters at line 58
__unset(
mixed $offset)
Magic method to unset the attribute
in
Getters at line 67
bool
offsetExists(
mixed $offset)
in
Getters at line 81
mixed
offsetGet(
mixed $offset)
in
Getters at line 95
offsetSet(
mixed $offset,
mixed $value)
in
Getters at line 108
offsetUnset(
mixed $offset)
in
Getters at line 121
int
count()
in
Getters at line 136
array
toArray()
Returns an associative array of object properties.
at line 82
__construct(
Grav $grav)
Constructor
at line 93
void
init(
Grav $grav)
Initialization that sets a base key and the driver based on configuration settings
at line 128
DoctrineCacheDriver
getCacheDriver()
Automatically picks the cache mechanism to use. If you pick one manually it will use that If there is no config option for $driver in the config, or it's set to 'auto', it will pick the best option based on which cache extensions are installed.
at line 191
object
fetch(
string $id)
Gets a cached entry if it exists based on an id. If it does not exist, it returns false
at line 207
save(
string $id,
array|object $data,
int $lifetime = null)
Stores a new cached entry.
at line 220
getKey()
Getter method to get the cache key
at line 232
static
array
clearCache(
string $remove = 'standard')
Helper method to clear all Grav caches
at line 304
setLifetime(
int $future)
Set the cache lifetime programmatically
at line 322
mixed
getLifetime()
Retrieve the cache lifetime (in seconds)


§467-7 Licenses required to act as real estate broker and salesperson. No person within the purview of this chapter shall act as real estate broker or real estate salesperson, or shall advertise, or assume to act as real estate broker or real estate salesperson without a license previously obtained under and in compliance with this chapter and the rules and regulations of the real estate commission. [L 1933, c 140, §6; RL 1935, §7315; am L 1935, c 126, §1; RL 1945, §7736; RL 1955, §170-6; HRS §467-7; am L 1989, c 217, §2]
Attorney General Opinions
Only persons not regularly engaged in real estate transaction with a power of attorney from the owner are within the exception. Att. Gen. Op. 65-24.
Includes employees involved in real estate transactions of employer's land. Att. Gen. Op. 66-6.
Selling lists of available real estate rentals is not an act within the definition of a real estate broker. Att. Gen. Op. 67-15.
Case Notes
Cited: 38 H. 9, 11 (1948).


1 Samuel 17:41
And the Philistine came on and drew near unto David; and the man that bare the shield went before him.


javanalysis
/
io.disassemble.javanalysis.flow
/
ControlFlowGraph
/
flow
flow
val
flow
:
ControlFlow
The
ControlFlow
for this graph to represent


when working with ac motors you should know how to read the motor plate. this can tell you how to wire the motor properly, and that you are using a suitable replacement. if you install the wrong motor your going to have a hard time claiming ignorance. its better to be competent enough to know for a fact what your doing.
being able to lookup a mounting hole profile by frame size has been useful to me. i had to make a template to drill 2 new holes and it helped tremendously to find the absolute dimensions for the mounting pattern. some NEMA frame motors can have a multi pattern mounting plate. if this was the original motor the mounting pattern that was drilled to mount may have been non standard. this poses a problem when you have to install a replacement motor that has NEMA standard pattern only.
understanding the reasons for the NEMA standard dimensions can help a tech trouble shoot if a motor is a proper replacement or not.


Money Game. How should Red play 44?
pips Red=152 White=157
(CorrectAnswer= 0/0, ErrorScore= 0)
When I had this position I fairly quickly played 13/9*/5, 7/3(2)*. My opponent entered with one checker and I cashed the game.
I was amazed when I put this into XG that it preferred 8/4(2), 7/3(2)*. How can hitting one possibly be better than hitting two? All three of the ‘hit two’ plays have the same equity but they are 0.05 behind the hit one play.
Normally when XG recommends a move I can quickly see why but here it took some time. What I think is going on is this:
After the hit one play the only roll that allows White to take Red’s double next turn is 26 (bar/23/17*) and that is no bargain. After the hit two plays White can take after 11, 22 and 44 but now he has a much better position.
It would seem that this possibility of White anchoring with an effective double is the difference between the plays which I think you would agree is something you wouldn’t have thought about when playing Red’s 44 – I certainly didn’t!
I was amazed when I put this into XG that it preferred 8/4(2), 7/3(2)*. How can hitting one possibly be better than hitting two? All three of the ‘hit two’ plays have the same equity but they are 0.05 behind the hit one play.
Normally when XG recommends a move I can quickly see why but here it took some time. What I think is going on is this:
After the hit one play the only roll that allows White to take Red’s double next turn is 26 (bar/23/17*) and that is no bargain. After the hit two plays White can take after 11, 22 and 44 but now he has a much better position.
It would seem that this possibility of White anchoring with an effective double is the difference between the plays which I think you would agree is something you wouldn’t have thought about when playing Red’s 44 – I certainly didn’t!
1. Cubeful 2-ply 8/4(2) 7/3*(2) Eq.: +0.992 0.757 0.487 0.015 - 0.243 0.039 0.001 2. Cubeful 2-ply 13/9*/5 7/3*(2) Eq.: +0.943 (-0.049) 0.749 0.444 0.015 - 0.251 0.042 0.001 3. Cubeful 2-ply 13/9*(2) 7/3*(2) Eq.: +0.942 (-0.050) 0.744 0.440 0.016 - 0.256 0.044 0.002 4. Cubeful 2-ply 24/20 13/9* 7/3*(2) Eq.: +0.941 (-0.051) 0.750 0.416 0.015 - 0.250 0.041 0.001 5. Cubeful 2-ply 24/20 13/9*(3) Eq.: +0.918 (-0.074) 0.726 0.254 0.008 - 0.274 0.043 0.001