| Package | Description |
|---|---|
| tracer | |
| tracer.paths | |
| tracer.renders |
| Modifier and Type | Class and Description |
|---|---|
class |
Tracer<T extends Path>
A Point that moves along a Path at some rate of speed, possibly speeding up and slowing down according to the curve specified by an Easing.
|
| Modifier and Type | Method and Description |
|---|---|
static Point |
Point.add(Point a,
Point b)
Adds two points.
|
static Point |
Point.avg(Point... pts)
Averages a sequence or array of points.
|
static Point |
Point.avg(Point a,
Point b)
Averages two points.
|
Point |
Point.clone() |
static Point |
Point.div(Point pt,
float divisor)
Divide a point by a divisor and return the result.
|
static Point |
Point.lerp(Point a,
Point b,
float amt)
Interpolates a Point a and a Point b by a given amount between 0 and 1.
|
static Point |
Point.mult(Point pt,
float multiplier)
Multiply a point by a multiplier and return the result.
|
static Point |
Point.sub(Point a,
Point b)
Subtracts two points.
|
static Point |
Point.sum(Point... pts)
Adds a sequence or array of points.
|
static Point[] |
Point.zip(float[] xs,
float[] ys)
Takes two float arrays, xs and ys, to make a Point array, pts,
such that pts[i] == new Point(xs[i], ys[i]), as i varies from 0 to min(xs.length, ys.length)-1
|
| Modifier and Type | Method and Description |
|---|---|
void |
Point.add(Point pt)
Add the given point to this point.
|
static Point |
Point.add(Point a,
Point b)
Adds two points.
|
static Point |
Point.avg(Point... pts)
Averages a sequence or array of points.
|
static Point |
Point.avg(Point a,
Point b)
Averages two points.
|
int |
Point.XValueComparator.compare(Point a,
Point b) |
int |
Point.YValueComparator.compare(Point a,
Point b) |
static float |
Point.dist(Point a,
Point b)
Computes the distance between two points.
|
static float |
Point.distSq(Point a,
Point b)
Computes the squared distance between two points.
|
static Point |
Point.div(Point pt,
float divisor)
Divide a point by a divisor and return the result.
|
boolean |
Point.equals(Point pt) |
static Point |
Point.lerp(Point a,
Point b,
float amt)
Interpolates a Point a and a Point b by a given amount between 0 and 1.
|
static Point |
Point.mult(Point pt,
float multiplier)
Multiply a point by a multiplier and return the result.
|
void |
Point.set(Point pt)
Sets this point to the given point
|
static float |
Point.slope(Point a,
Point b)
The slope between two points.
|
static void |
Point.step(Point[] points)
Steps every Point in the array
|
static void |
Point.step(Point[] points,
int dt)
Steps every Point in the array by the given time step.
|
static Point |
Point.sub(Point a,
Point b)
Subtracts two points.
|
static Point |
Point.sum(Point... pts)
Adds a sequence or array of points.
|
void |
Point.translate(Point translation)
Shifts this Point by (translation.x, translation.y)
|
| Modifier and Type | Method and Description |
|---|---|
static void |
Point.step(java.util.Collection<? extends Point> points)
Steps every Point in the collection
|
static void |
Point.step(java.util.Collection<? extends Point> points,
int dt)
Steps every Point in the collection by the given time step.
|
| Constructor and Description |
|---|
Point(Point pt)
Copy constructor.
|
| Modifier and Type | Field and Description |
|---|---|
Point |
Gesture.SpaceTimePoint.pt |
| Modifier and Type | Method and Description |
|---|---|
Point |
Line.getA() |
Point |
Rect.getAB() |
Point |
Arc.getAB() |
Point |
Ellipse.getAB() |
Point |
CubicBezier.getAnchor1() |
Point |
CubicBezier.getAnchor2() |
Point |
Line.getB() |
Point |
Rect.getCD() |
Point |
Arc.getCD() |
Point |
Ellipse.getCD() |
Point |
Rose.getCenter() |
Point |
Superellipse.getCenter() |
Point |
Circle.getCenter()
Gives the center point of the Circle.
|
Point |
Supershape.getCenter() |
Point |
Lissajous.getCenter() |
Point |
InfinitySymbol.getCenter() |
Point |
CubicBezier.getControl1() |
Point |
CubicBezier.getControl2() |
Point |
TranslatedPath.getPoint()
Gives the translation Point.
|
Point |
Gesture.getSpatialCoordinate(int i)
Gives the ith spatial vertex in the Path, which is just a Point.
|
Point |
MultiShape.getVertex2D(int i) |
Point |
Shape.getVertex2D(int i)
Gives the ith vertex of the Shape as a 2D coordinate.
|
Point |
Path.trace(float u)
A continuous function from real values (floats) to Points.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Shape.addVertex(int i,
Point pt)
Adds a vertex to the Shape.
|
void |
MultiShape.addVertex(Point pt) |
void |
Shape.addVertex(Point pt)
Adds a vertex to the Shape.
|
void |
Gesture.addVertex(Point pt,
float t)
Adds a vertex at time t.
|
static float |
Line.dist(Point a,
Point b)
Computes the distance between a and b.
|
void |
Rect.set(Point ab,
float c,
float d,
int rectMode)
Sets the position and size of the rectangle.
|
void |
Ellipse.set(Point ab,
float c,
float d,
int ellipseMode)
Sets the position and size of the ellipse.
|
void |
Rect.set(Point ab,
Point cd,
int rectMode)
Sets the position and size of the rectangle.
|
void |
Ellipse.set(Point ab,
Point cd,
int ellipseMode)
Sets the position and size of the ellipse.
|
void |
Line.setA(Point a) |
void |
Rect.setAB(Point ab) |
void |
Arc.setAB(Point ab) |
void |
Ellipse.setAB(Point ab) |
void |
CubicBezier.setAnchor1(Point a1) |
void |
CubicBezier.setAnchor2(Point a2) |
void |
Line.setB(Point b) |
void |
Rect.setCD(Point cd) |
void |
Arc.setCD(Point cd) |
void |
Ellipse.setCD(Point cd) |
void |
Rose.setCenter(Point cen) |
void |
Superellipse.setCenter(Point cen) |
void |
Circle.setCenter(Point center)
Sets the center point of the Circle.
|
void |
Supershape.setCenter(Point cen) |
void |
Lissajous.setCenter(Point cen) |
void |
InfinitySymbol.setCenter(Point cen) |
void |
CubicBezier.setControl1(Point c1) |
void |
CubicBezier.setControl2(Point c2) |
void |
Arc.setEllipse(Point ab,
float c,
float d,
int ellipseMode)
Sets the position and size of the ellipse underlying the arc.
|
void |
Arc.setEllipse(Point ab,
Point cd,
int ellipseMode)
Sets the position and size of the ellipse underlying the arc.
|
void |
TranslatedPath.setTranslation(Point translation)
Sets the translation Point.
|
void |
MultiShape.setVertex(int i,
Point pt) |
void |
Shape.setVertex(int i,
Point pt)
Sets the vertex at index i to the given Point.
|
void |
MultiShape.trace(Point target,
float u)
Behavior *****
|
void |
Line.trace(Point target,
float u) |
abstract void |
Path.trace(Point target,
float u)
Given a 1D coordinate, a float, maps the coordinate to a 2D coordinate
and stores it in a given Point.
|
void |
CubicBezier.trace(Point target,
float u)
Behavior *****
|
void |
Shape.trace(Point target,
float u) |
void |
Rose.trace(Point target,
float u)
Behavior *****
|
void |
Plot.trace(Point target,
float u) |
void |
Superellipse.trace(Point target,
float u)
Behavior *****
|
void |
TranslatedPath.trace(Point target,
float u)
Behavior *****
|
void |
Rect.trace(Point target,
float u) |
void |
Composite.trace(Point target,
float u)
Behavior *****
|
void |
Circle.trace(Point target,
float u) |
void |
Arc.trace(Point target,
float u) |
void |
Supershape.trace(Point target,
float u)
Behavior *****
|
void |
Blender.trace(Point target,
float u)
Behavior *****
|
void |
MultiPath.trace(Point target,
float u)
Behavior *****
|
void |
Lissajous.trace(Point target,
float u)
Behavior *****
|
void |
Ellipse.trace(Point target,
float u) |
void |
InfinitySymbol.trace(Point target,
float u)
Behavior *****
|
void |
Segment.trace(Point target,
float u)
Behavior *****
|
void |
Gesture.trace(Point target,
float u) |
static void |
Line.trace(Point pt,
float ax,
float ay,
float bx,
float by,
float u)
Interpolates between the line defined by (ax, ay) and (bx, by) by the
given amount (a value between 0 and 1) and stores the result in the given
point.
|
static void |
Line.trace(Point target,
Point a,
Point b,
float u)
Interpolates between the line defined by (a.x, a.y) and (b.x, b.y) by the
given amount (a value between 0 and 1) and stores the result in the given
point.
|
| Constructor and Description |
|---|
Arc(Point ab,
Point cd,
float startAngle,
float endAngle,
int ellipseMode) |
Circle(Point center,
float radius) |
CubicBezier(Point a1,
Point c1,
Point c2,
Point a2) |
Ellipse(Point ab,
float c,
float d,
int ellipseMode) |
Ellipse(Point ab,
Point cd,
int ellipseMode) |
Gesture(Point[] vertices,
float[] ts) |
InfinitySymbol(Point cen,
float r)
Easy constructor.
|
InfinitySymbol(Point cen,
float xRadius,
float yRadius) |
Line(Point a,
Point b) |
Lissajous(Point cen,
float r)
Easy constructor
|
Lissajous(Point center,
float xRadius,
float yRadius,
float freqX,
float freqY,
float phi) |
Rect(Point ab,
float c,
float d,
int rectMode) |
Rect(Point ab,
Point cd,
int rectMode) |
Rose(Point center,
float r)
Easy constructor.
|
Rose(Point cen,
float radius,
float freq1,
float freq2) |
Rose(Point cen,
float xRadius,
float yRadius,
float freq1,
float freq2) |
Shape(Point[] vertices) |
SpaceTimePoint(Point pt,
float t) |
Superellipse(Point cen,
float r)
Easy constructor.
|
Superellipse(Point cen,
float xRadius,
float yRadius,
float n) |
Supershape(Point cen,
float r)
Easy constructor.
|
Supershape(Point cen,
float xRadius,
float yRadius,
float m) |
Supershape(Point cen,
float xRadius,
float yRadius,
float m,
float n1,
float n2,
float n3) |
TranslatedPath(Point translation,
T path)
Constructs a Path that is the given Path translated by the given Point.
|
| Constructor and Description |
|---|
Gesture(java.util.List<Point> vertices,
java.util.List<java.lang.Float> ts) |
Plot(java.util.ArrayList<Point> pts)
Initialization *****
|
Shape(java.util.List<Point> vertices) |
| Modifier and Type | Method and Description |
|---|---|
static java.util.ArrayList<Point> |
Render.listify(Point[] arr)
Converts an array of Points into an ArrayList of points.
|
| Modifier and Type | Method and Description |
|---|---|
void |
Render.add(Point pt) |
static java.util.ArrayList<Point> |
Render.listify(Point[] arr)
Converts an array of Points into an ArrayList of points.
|
boolean |
Render.remove(Point pt) |
| Constructor and Description |
|---|
Render(Point[] pts)
Constructs a Render containing the array of Points.
|
RenderClique(Point[] ts) |
RenderMesh(Point[] ts) |
RenderMesh(Point[] ts,
float minDist) |
RenderMesh(Point[] ts,
float minDist,
float strokeRamp) |
RenderShape(Point[] ts) |
| Constructor and Description |
|---|
Render(java.util.Collection<? extends Point> pts)
Constructs a Render containing the list of Points.
|
RenderClique(java.util.Collection<? extends Point> ts) |
RenderMesh(java.util.Collection<? extends Point> ts) |
RenderMesh(java.util.Collection<? extends Point> ts,
float minDist) |
RenderMesh(java.util.Collection<? extends Point> ts,
float minDist,
float strokeRamp) |
RenderShape(java.util.Collection<? extends Point> ts) |


Royal Navy sailors' frontline heroics to be recognised by the Queen
Queen’s Gallantry Medal, Queen’s Commendation for Bravery, OBE and Queen’s Commendation for Valuable Service among awards be handed out
by Max ChannonFour Royal Navy sailors have got a date at Buckingham Palace with Her Majesty the Queen, after being recognised for their heroic deeds on the front line.
Personnel from all three Services have been singled out for bravery, dedication and effort above and beyond what would normally be expected of them, in the second Operational Honours list of the year.
The bravery of two former crew mates from Plymouth based Type 23 frigate HMS Argll – sea boat coxswain Leading Seaman David Groves and his bowman Able Seaman Alex Harvey – is acknowledged with the award of the Queen’s Gallantry Medal and Queen’s Commendation for Bravery respectively.
Commander Mike Carter-Quinn, now at FOST in Plymouth, receives an OBE for his time in charge of destroyer HMS Dragon.
And Leading Medical Assistant Gemma Brown gets the Queen’s Commendation for Valuable Service for delivering trauma and first-aid instruction in Iraq.
LATEST ROYAL NAVY AND ROYAL MARINE NEWS HERE
The Royal Navy says it will release the full stories behind the awards tomorrow.


SweetFreeStuff.com
///////////////////////////////////////////
Free Paulas Choice Resist Intensive Wrinkle Repair Retinol Serum Sample
Posted: 26 Sep 2013 11:50 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/7NldT4gaXjI/?utm_source=feedburner&utm_medium=email
Login or sign up for an account to see if you qualify for a Free Paula’s
Choice Resist Serum Sample.
The post Free Paula’s Choice Resist Intensive Wrinkle Repair Retinol Serum
Sample appeared first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Screamin Energy Max Hit Coffee Mocha
Posted: 26 Sep 2013 09:13 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/lEm0jDvcnNY/?utm_source=feedburner&utm_medium=email
Free Sample of Screamin Energy Max Hit Coffee Mocha
The post Free Sample of Screamin Energy Max Hit Coffee Mocha appeared first
on SweetFreeStuff.com.
///////////////////////////////////////////
Free Subscription to Popular Science
Posted: 26 Sep 2013 01:13 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/iKFvdtHnMEo/?utm_source=feedburner&utm_medium=email
The post Free Subscription to Popular Science appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Maxim Magazine Subscription
Posted: 25 Sep 2013 11:59 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/kJV8nTpK1fY/?utm_source=feedburner&utm_medium=email
Sign up for a completely
The post Free Maxim Magazine Subscription appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Eucerin Smoothing Repair Lotion
Posted: 25 Sep 2013 11:00 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/Fkx45MEAa4Y/?utm_source=feedburner&utm_medium=email
Click on Pledge Now for a Free Sample of Eucerin Lotion.
The post Free Sample of Eucerin Smoothing Repair Lotion appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free ROGUE by Rihanna Perfume Sample
Posted: 25 Sep 2013 01:00 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/8zF9_4BnA1s/?utm_source=feedburner&utm_medium=email
Like their Facebook page to request a free sample of ROGUE by Rihanna
Perfume.
The post Free ROGUE by Rihanna Perfume Sample appeared first on
SweetFreeStuff.com.
///////////////////////////////////////////
Free Sample of Nashville Dog Company Dog Treats (Expired)
Posted: 25 Sep 2013 05:34 AM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/hQjjRON_6A0/?utm_source=feedburner&utm_medium=email
Sign up for a free sample of Nashville Dog Treats.
The post Free Sample of Nashville Dog Company Dog Treats (Expired) appeared
first on SweetFreeStuff.com.
///////////////////////////////////////////
Free Divine Cream Sample At LOccitane
Posted: 24 Sep 2013 10:35 PM PDT
http://feedproxy.google.com/&;r/SweetFreeStuff/&;3/NH-6dvgcw0k/?utm_source=feedburner&utm_medium=email
Sign up for your free trial of LOccitane Divine Cream and get a free sample
in-store. Good though 10/8.
The post Free Divine Cream Sample At L’Occitane appeared first on
SweetFreeStuff.com.


Statement
Thank you for using the Montgomery County, Maryland (hereafter the County), web portal domain and all associated web sites (hereafter collectively “Web Portal”). The County hopes that you find its Web Portal to be a convenient and valuable resource for interacting with the County’s agents and agencies. This document represents the County’s Web Portal Privacy Policy and it is intended to summarize the extent to which the law, including the Maryland Public Information Act (“MPIA”), permits or requires users’ information to be kept private. In addition, this document outlines the County’s policy for keeping information users provide secure. The County’s Chief Information Officer (CIO) promulgates this policy in accordance with applicable law. The County reserves the right to change these practices and procedures at any time without prior notice. The following is not intended, and should not be interpreted, as a contract of any nature, either expressed or implied.
Applicability
This Privacy Policy applies to all County agents and agencies that maintain, create, collect, or publish web content or applications on the County’s Web Portal.
This Privacy Policy will discuss the following items:
When does the County collect user information?
Whenever a user interacts with the County’s Web Portal, the County’s Web Portal servers automatically collects and logs the user’s Internet domain (i.e. www.exampledomain.com), Internet Protocol (IP) address, referring web address, browser type, screen resolution, date and time of the visit, and the content or web pages visited. This information is used primarily for statistical reporting and web design purposes in applications such as Google Analytics.
The County also collects information when a user fills out a form, or otherwise provides information, for the County to provide services. The data a user provides may be stored in County data bases. By providing information, a user authorizes the County to collect the information. If a user does not wish the County to collect his or her information, a user should not provide the information to the County. However, the County may be unable to provide the service if a user does not provide required information.
What personal information is collected?
The MPIA defines “personal information” as information collected that identifies an individual, including an individual’s address, driver’s license number, or any other identification number, medical or disability information, name, photograph or computer generated image, Social Security number, or telephone number. However, “personal information” expressly does not include an individual’s driver’s status, driving offenses, 5-digit zip code, or information on vehicular accidents.
Similarly, the MPIA defines a “personal record” as a public record that names or, with reasonable certainty, otherwise identifies an individual by an identifying factor, such as an address, a description, a finger or voice print, a number or a picture.
Under the MPIA, personal information, resulting in a personal record, may be collected only when the information is appropriate and relevant to the County services requested. The MPIA restricts the County's ability to create "personal records" to those circumstances under which the County clearly establishes the need for that information.
Therefore, the County expects to collect personal information from users only as needed to provide programs or services.
When is personal information protected from public disclosure?
The MPIA generally requires the County, as a political subdivision of the State of Maryland, to disclose all public information, including personal information. The MPIA, however, specifically exempts certain categories of information from this public disclosure requirement. The MPIA also expressly recognizes that other laws prohibit certain categories of information from public disclosure. The County complies with all applicable laws that protect certain categories of information from public disclosure.
For a complete discussion of the circumstances under which a personal record, including one that may contain personal information, may or must be withheld from disclosure, please refer to the MPIA and the Maryland Office of the Attorney General’s Maryland Public Information Act Manual (12th ed. October 2011) (as amended), which may be found online as of the date of this Privacy Policy at http://www.oag.state.md.us/Opengov/pia.htm.
How is personal information used?
The County collects, retains and uses personal information only where the County believes it is essential (and allowed by law) to perform the County’s mission of providing products, services, information and other opportunities requested by Web Portal visitors. The County does not sell or rent Web Portal users’ information to any company or organization.
Consistent with applicable laws, County employees have access to a user’s personal information only to the extent necessary for the employees to perform their work on behalf of the County.
When visiting a County Web Portal web page, a “cookie” or small text file may be downloaded from a County Web Portal server to a user’s computer to collect and store non-personally identifiable information. The information stored in the cookie is used by County Web Portal servers to successfully recognize a user and retain user browsing preferences, so that Web Portal web pages can more efficiently serve users in future visits. County Web Portal server-generated cookies will include information identifying itself to the user’s computer.
Cookies are not executable programs that can be used to spread a virus or read a user’s computer hard drive. However, some users may choose to set their browser to block cookies, to eliminate the risk of third-party web site cookies to accessing their computer. By doing so, this may affect access to and functionality of some County Web Portal applications which use temporary cookies to manage an application’s session state. Temporary cookies are stored in a user’s computer's memory during a browsing session, are not used to collect user preferences, and are typically removed when the browser is closed.
What kind of security procedures are in place to protect users?
The County is dedicated to the proposition that users have a right to data security on the County’s Web Portal consistent with applicable law. The County sets and meets high security standards and follows rigorous procedures to prevent unauthorized access to or disclosure of user information and to prevent unauthorized removal or alteration of data.
The County provides its Web Portal users with a secure online experience by using a variety of security measures to maintain the safety of your personal information, including the creation of a user identification and password to limit access by others to a user’s information in certain County applications.
How can a user correct any inaccuracies in his or her personal information?
The County responds to user requests to correct or update inaccurate information in a timely manner. In the event the user believes his or her information needs to be modified, the user must notify the County. Furthermore, for the resolution of any security issues, including misuse or corruption of information, or user identification and password concerns, the user must contact the County immediately.
The County welcomes user comments and invites questions or concerns regarding this Privacy Policy. Users may either click on “ Contact us” or call 311.


Introduction
There is a config file which includes couple of variables that needs to be modified before start to run most of the scripts in this project. Here is the guide for how to handle this config file with those variables.
Variables
-
database_folder: This variable is to define the path of the folder which will contain databases that will be created.
-
api_database_folder: This variable is to define the path of the folder which will contain databases of API. It is fixed and not recommended to change since it may effect the API.
-
db_to_convert: This variable is to define the name of database with the date column in epoch format which will be used for
epoch_to_datetime.py
file. -
converted_db: This variable is to define the name of database with the date column in datetime format which will be used for
epoch_to_datetime.py
file. -
first_epoch_of_hash: This variable is to define the first date of hash fetching from malshare archives.
-
malshare_api_key: The variable where you will put your api key that you get from malshare.
-
hashes_db_name: This variable is to define the name of database which contains hashes and dates for a couple of arguments of
malshare_script.py
. -
details_db_name: This variable is to define the name of database which contains details of hashes for a couple of arguments of
malshare_script.py
. -
fixed_hashes_db: This variable is to define the name of hashes database that will be used for
malshare_script.py
with--update24
argument. -
malshare_db_name: This variable is to define the name of details database that will be used for
malshare_script.py
with--update
and also--update24
arguments. -
openbugbounty_db_name: This variable is to define the name of database of openbugbounty's RSS feed that will be used for
rss_tracker.py
. -
cybercrimetracker_db_name: This variable is to define the name of database of cybercrimetracker's RSS feed that will be used for
rss_tracker.py
.
Usage
database_folder
This variable is the variable that you are going to define your database folder. Initially it is set to './Databases' folder.
api_database_folder
This variable is the variable that you are going to define your database folder which will be used for you API. It will contain the databases that people can access by using you API. Basically, whatever .db file which is database inside of this folder, will be able to accessible via API.
Since malshare_script.py
has many arguments and it is not only for API usage but also for different purposes of usage,
I've decided to store the databases which will be used by API not in database_folder
but in a seperated folder to avoid
conflicts.
Initially this variable is set to 'database_folder + 'api-db/' ' which means it will be always inside of
database_folder
variable. So all of the databases whetever using for API or for other purposes will be in the same
folder but using for API ones will be in a sub folder.
db_to_convert
This variable is only for epoch_to_datetime.py
script. Whatever the name you provide to this variable,
epoch_to_datetime.py
script will look for a database that will be converted in the database folder that you define
with database_folder
variable in config.py
.
For example:
If you have a database named 'epoch_db.db' with 2 columns 'hash' and 'date' (in epoch format) in a table named
'data', set this variable to 'epoch_db.db' and database_folder
variable to './Databases', epoch_to_datetime.py
will
first look into './Databases' folder and it will require to find a database with the name 'epoch_db.db'.
But when you try to run epoch_to_datetime.py
without having a database named 'epoch_db.db', it will raise an error.
converted_db
This variable is only for epoch_to_datetime.py
script. Whatever the name you provide to this variable,
epoch_to_datetime.py
script will create or update a database, in the database folder that you define with
database_folder
variable in config.py
, depending on a database with this name exists or not.
first_epoch_of_hash
This variable is only for get_hashes_until_yesterday()
function of malshare_script.py
script. This function is getting
date in epoch format as a parameter and fetching hashes for single day beginning from this parameter.
For example:
If you set first_epoch_of_hash
variable to '1505347200' which is 2017-09-14, get_hashes_until_yesterday
function
will fetch all of the hashes for every single day since 2017-09-14.
Assume that today's date is 2018-07-18 and you want to fetch the MD5 hashes since 6th of June, 2018. What you need to do is just set this variable to epoch format of 6th of June, 2018 which is '1528243200'.
Here you go, you will have a database which will contain MD5 hashes beginning from 6th of June until 17th of July, which is yesterday, and this database will have 2 columns;
- hash
- date (in epoch format)
malshare_api_key
This variable is for your MalShare api key. You have to have an api key in order to use MalShare API's.
If you do not have an api key, you can register and obtain your api key here.
Note: Standard keys allow 1000 API calls per day (including downloading samples, details lookup and search).
hashes_db_name
This variable is being used for the databases which includes hashes and sources. It is used for following arguments:
--untilyesterday
--hash2detail
--sources24
--bydate
Except the --sources24
argument it creates or handles databases with a table named hash_data. This table has
2 columns which are hash and date (in epoch format).
For the --sources24
argument it creates or handles database with a table named source_data. This table has
2 columns which are source and date (in epoch format).
details_db_name
This variable is being used for the databases which includes details of hashes. It is used only for --hash2detail
argument of malshare_script.py
.
It creates or handles database with a table named data. This table has 4 columns which are hash, f_type, source, date.
fixed_hashes_db
This variable is only being used for --update24
argument of malshare_script.py
. Set this variable to any db name
ending with '.db'. For example: yesterday_hashes.db
malshare_db_name
This variable is being used for --update24
and --update
argument of malshare_script.py
. Set this variable to
any db name ending with '.db' as you desire. For example: malshare.db
.
It is initially set to 'malshare.db'
. Since --update24
and --update
arguments are using for API, it needed to
have a fixed details database name in order to run these arguments properly.
-
--update24
argument uses this variable as target database to update it every 24 hours. -
--update
argument uses this variable as target database to update periodically depending on your job schedule. (Every 20 minutes for me.)
openbugbounty_db_name
This variable is being used for process_openbugbounty()
function of rss_tracker.py
script. This function is getting
used for parsing RSS feed of OpenBugBounty RSS feed .
Change this variable to any database name ending with '.db' as you desire and this database will be storing your malware details belonging to openbugbounty.
cybercrimetracker_db_name
This variable is being used for process_cybercrimetracker()
function of rss_tracker.py
script. This function is getting
used for parsing RSS feed of CyberCrime-Tracker RSS feed.
Change this variable to any database name ending with '.db' as you desire and this database will be storing your malware details belonging to cybercrime-tracker.


Entries
Importing
Accounts Totalizations Report
Dashboard
Accounts
Results Centers
Memos Mappings
Entries Templates


public class MimeBodyPart extends BodyPart implements MimePart
BodyPart
abstract class and the MimePart
interface. MimeBodyParts are contained in MimeMultipart
objects.
MimeBodyPart uses the InternetHeaders
class to parse
and store the headers of that body part.
RFC 822 header fields must contain only
US-ASCII characters. MIME allows non ASCII characters to be present
in certain portions of certain headers, by encoding those characters.
RFC 2047 specifies the rules for doing this. The MimeUtility
class provided in this package can be used to to achieve this.
Callers of the setHeader
, addHeader
, and
addHeaderLine
methods are responsible for enforcing
the MIME requirements for the specified headers. In addition, these
header fields must be folded (wrapped) before being sent if they
exceed the line length limitation for the transport (1000 bytes for
SMTP). Received headers may have been folded. The application is
responsible for folding and unfolding headers as appropriate.
Part
,
MimePart
,
MimeUtility
| Modifier and Type | Field and Description |
|---|---|
protected java.lang.Object |
cachedContent
If our content is a Multipart of Message object, we save it
the first time it's created by parsing a stream so that changes
to the contained objects will not be lost.
|
protected byte[] |
content
Byte array that holds the bytes of the content of this Part.
|
protected java.io.InputStream |
contentStream
If the data for this body part was supplied by an
InputStream that implements the SharedInputStream interface,
contentStream is another such stream representing
the content of this body part. |
protected DataHandler |
dh
The DataHandler object representing this Part's content.
|
protected InternetHeaders |
headers
The InternetHeaders object that stores all the headers
of this body part.
|
ATTACHMENT, INLINE
| Constructor and Description |
|---|
MimeBodyPart()
An empty MimeBodyPart object is created.
|
MimeBodyPart(java.io.InputStream is)
Constructs a MimeBodyPart by reading and parsing the data from
the specified input stream.
|
MimeBodyPart(InternetHeaders headers,
byte[] content)
Constructs a MimeBodyPart using the given header and
content bytes.
|
| Modifier and Type | Method and Description |
|---|---|
void |
addHeader(java.lang.String name,
java.lang.String value)
Add this value to the existing values for this header_name.
|
void |
addHeaderLine(java.lang.String line)
Add a header line to this body part
|
void |
attachFile(java.io.File file)
Use the specified file to provide the data for this part.
|
void |
attachFile(java.io.File file,
java.lang.String contentType,
java.lang.String encoding)
Use the specified file with the specified Content-Type and
Content-Transfer-Encoding to provide the data for this part.
|
void |
attachFile(java.lang.String file)
Use the specified file to provide the data for this part.
|
void |
attachFile(java.lang.String file,
java.lang.String contentType,
java.lang.String encoding)
Use the specified file with the specified Content-Type and
Content-Transfer-Encoding to provide the data for this part.
|
java.util.Enumeration<java.lang.String> |
getAllHeaderLines()
Get all header lines as an Enumeration of Strings.
|
java.util.Enumeration<Header> |
getAllHeaders()
Return all the headers from this Message as an Enumeration of
Header objects.
|
java.lang.Object |
getContent()
Return the content as a Java object.
|
java.lang.String |
getContentID()
Returns the value of the "Content-ID" header field.
|
java.lang.String[] |
getContentLanguage()
Get the languages specified in the Content-Language header
of this MimePart.
|
java.lang.String |
getContentMD5()
Return the value of the "Content-MD5" header field.
|
protected java.io.InputStream |
getContentStream()
Produce the raw bytes of the content.
|
java.lang.String |
getContentType()
Returns the value of the RFC 822 "Content-Type" header field.
|
DataHandler |
getDataHandler()
Return a DataHandler for this body part's content.
|
java.lang.String |
getDescription()
Returns the "Content-Description" header field of this body part.
|
java.lang.String |
getDisposition()
Returns the disposition from the "Content-Disposition" header field.
|
java.lang.String |
getEncoding()
Returns the content transfer encoding from the
"Content-Transfer-Encoding" header
field.
|
java.lang.String |
getFileName()
Get the filename associated with this body part.
|
java.lang.String[] |
getHeader(java.lang.String name)
Get all the headers for this header_name.
|
java.lang.String |
getHeader(java.lang.String name,
java.lang.String delimiter)
Get all the headers for this header name, returned as a single
String, with headers separated by the delimiter.
|
java.io.InputStream |
getInputStream()
Return a decoded input stream for this body part's "content".
|
int |
getLineCount()
Return the number of lines for the content of this Part.
|
java.util.Enumeration<java.lang.String> |
getMatchingHeaderLines(java.lang.String[] names)
Get matching header lines as an Enumeration of Strings.
|
java.util.Enumeration<Header> |
getMatchingHeaders(java.lang.String[] names)
Return matching headers from this Message as an Enumeration of
Header objects.
|
java.util.Enumeration<java.lang.String> |
getNonMatchingHeaderLines(java.lang.String[] names)
Get non-matching header lines as an Enumeration of Strings.
|
java.util.Enumeration<Header> |
getNonMatchingHeaders(java.lang.String[] names)
Return non-matching headers from this Message as an
Enumeration of Header objects.
|
java.io.InputStream |
getRawInputStream()
Return an InputStream to the raw data with any Content-Transfer-Encoding
intact.
|
int |
getSize()
Return the size of the content of this body part in bytes.
|
boolean |
isMimeType(java.lang.String mimeType)
Is this Part of the specified MIME type? This method
compares only the
primaryType and
subType . |
void |
removeHeader(java.lang.String name)
Remove all headers with this name.
|
void |
saveFile(java.io.File file)
Save the contents of this part in the specified file.
|
void |
saveFile(java.lang.String file)
Save the contents of this part in the specified file.
|
void |
setContent(Multipart mp)
This method sets the body part's content to a Multipart object.
|
void |
setContent(java.lang.Object o,
java.lang.String type)
A convenience method for setting this body part's content.
|
void |
setContentID(java.lang.String cid)
Set the "Content-ID" header field of this body part.
|
void |
setContentLanguage(java.lang.String[] languages)
Set the Content-Language header of this MimePart.
|
void |
setContentMD5(java.lang.String md5)
Set the "Content-MD5" header field of this body part.
|
void |
setDataHandler(DataHandler dh)
This method provides the mechanism to set this body part's content.
|
void |
setDescription(java.lang.String description)
Set the "Content-Description" header field for this body part.
|
void |
setDescription(java.lang.String description,
java.lang.String charset)
Set the "Content-Description" header field for this body part.
|
void |
setDisposition(java.lang.String disposition)
Set the disposition in the "Content-Disposition" header field
of this body part.
|
void |
setFileName(java.lang.String filename)
Set the filename associated with this body part, if possible.
|
void |
setHeader(java.lang.String name,
java.lang.String value)
Set the value for this header_name.
|
void |
setText(java.lang.String text)
Convenience method that sets the given String as this
part's content, with a MIME type of "text/plain".
|
void |
setText(java.lang.String text,
java.lang.String charset)
Convenience method that sets the given String as this part's
content, with a MIME type of "text/plain" and the specified
charset.
|
void |
setText(java.lang.String text,
java.lang.String charset,
java.lang.String subtype)
Convenience method that sets the given String as this part's
content, with a primary MIME type of "text" and the specified
MIME subtype.
|
protected void |
updateHeaders()
Examine the content of this body part and update the appropriate
MIME headers.
|
void |
writeTo(java.io.OutputStream os)
Output the body part as an RFC 822 format stream.
|
protected DataHandler dh
protected byte[] content
protected java.io.InputStream contentStream
contentStream
is another such stream representing
the content of this body part. In this case, content
will be null.protected InternetHeaders headers
protected java.lang.Object cachedContent
getContent()
method. The getContent()
method sets this field if it
would return a Multipart or MimeMessage object. This field is
is cleared by the setDataHandler(jakarta.activation.DataHandler)
method.public MimeBodyPart()
public MimeBodyPart(java.io.InputStream is) throws MessagingException
Note that the "boundary" string that delimits body parts must not be included in the input stream. The intention is that the MimeMultipart parser will extract each body part's bytes from a multipart stream and feed them into this constructor, without the delimiter strings.
is
- the body part Input StreamMessagingException
- for failurespublic MimeBodyPart(InternetHeaders headers, byte[] content) throws MessagingException
Used by providers.
headers
- The header of this partcontent
- bytes representing the body of this part.MessagingException
- for failurespublic int getSize() throws MessagingException
Note that this number may not be an exact measure of the content size and may or may not account for any transfer encoding of the content.
This implementation returns the size of the content
array (if not null), or, if contentStream
is not
null, and the available
method returns a positive
number, it returns that number as the size. Otherwise, it returns
-1.
getSize
in interface Part
MessagingException
- for failurespublic int getLineCount() throws MessagingException
Note that this number may not be an exact measure of the content length and may or may not account for any transfer encoding of the content.
This implementation returns -1.
getLineCount
in interface Part
MessagingException
- for failurespublic java.lang.String getContentType() throws MessagingException
This implementation uses getHeader(name)
to obtain the requisite header field.
getContentType
in interface Part
MessagingException
- for failuresDataHandler
public boolean isMimeType(java.lang.String mimeType) throws MessagingException
primaryType
and
subType
.
The parameters of the content types are ignored.
For example, this method will return true
when
comparing a Part of content type "text/plain"
with "text/plain; charset=foobar".
If the subType
of mimeType
is the
special character '*', then the subtype is ignored during the
comparison.
isMimeType
in interface Part
mimeType
- the MIME type to testMessagingException
- for failurespublic java.lang.String getDisposition() throws MessagingException
If the Content-Disposition field is unavailable, null is returned.
This implementation uses getHeader(name)
to obtain the requisite header field.
getDisposition
in interface Part
MessagingException
- for failuresheaders
public void setDisposition(java.lang.String disposition) throws MessagingException
setDisposition
in interface Part
disposition
- disposition of this partIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- for other failuresPart.ATTACHMENT
,
Part.INLINE
,
Part.setFileName(java.lang.String)
public java.lang.String getEncoding() throws MessagingException
null
if the header is unavailable
or its value is absent.
This implementation uses getHeader(name)
to obtain the requisite header field.
getEncoding
in interface MimePart
MessagingException
- for failuresheaders
public java.lang.String getContentID() throws MessagingException
null
if the field is unavailable or its value is
absent.
This implementation uses getHeader(name)
to obtain the requisite header field.
getContentID
in interface MimePart
MessagingException
- for failurespublic void setContentID(java.lang.String cid) throws MessagingException
cid
parameter is null, any existing
"Content-ID" is removed.cid
- the Content-IDIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- for other failurespublic java.lang.String getContentMD5() throws MessagingException
null
if this field is unavailable or its value
is absent.
This implementation uses getHeader(name)
to obtain the requisite header field.
getContentMD5
in interface MimePart
MessagingException
- for failurespublic void setContentMD5(java.lang.String md5) throws MessagingException
setContentMD5
in interface MimePart
md5
- the MD5 valueIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
public java.lang.String[] getContentLanguage() throws MessagingException
null
if this header is not
available or its value is absent.
This implementation uses getHeader(name)
to obtain the requisite header field.
getContentLanguage
in interface MimePart
MessagingException
- for failurespublic void setContentLanguage(java.lang.String[] languages) throws MessagingException
setContentLanguage
in interface MimePart
languages
- array of language tagsIllegalWriteException
- if the underlying
implementation does not support modificationMessagingException
public java.lang.String getDescription() throws MessagingException
If the Content-Description field is encoded as per RFC 2047, it is decoded and converted into Unicode. If the decoding or conversion fails, the raw data is returned as is.
This implementation uses getHeader(name)
to obtain the requisite header field.
getDescription
in interface Part
MessagingException
- for failurespublic void setDescription(java.lang.String description) throws MessagingException
null
, then any
existing "Content-Description" fields are removed. If the description contains non US-ASCII characters, it will be encoded using the platform's default charset. If the description contains only US-ASCII characters, no encoding is done and it is used as is.
Note that if the charset encoding process fails, a MessagingException is thrown, and an UnsupportedEncodingException is included in the chain of nested exceptions within the MessagingException.
setDescription
in interface Part
description
- content descriptionIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- otherwise; an
UnsupportedEncodingException may be included
in the exception chain if the charset
conversion fails.public void setDescription(java.lang.String description, java.lang.String charset) throws MessagingException
null
, then any
existing "Content-Description" fields are removed. If the description contains non US-ASCII characters, it will be encoded using the specified charset. If the description contains only US-ASCII characters, no encoding is done and it is used as is.
Note that if the charset encoding process fails, a MessagingException is thrown, and an UnsupportedEncodingException is included in the chain of nested exceptions within the MessagingException.
description
- Descriptioncharset
- Charset for encodingIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- otherwise; an
UnsupportedEncodingException may be included
in the exception chain if the charset
conversion fails.public java.lang.String getFileName() throws MessagingException
Returns the value of the "filename" parameter from the
"Content-Disposition" header field of this body part. If its
not available, returns the value of the "name" parameter from
the "Content-Type" header field of this body part.
Returns null
if both are absent.
If the mail.mime.decodefilename
System property
is set to true, the MimeUtility.decodeText
method will be used to decode the
filename. While such encoding is not supported by the MIME
spec, many mailers use this technique to support non-ASCII
characters in filenames. The default value of this property
is false.
getFileName
in interface Part
MessagingException
- for failurespublic void setFileName(java.lang.String filename) throws MessagingException
Sets the "filename" parameter of the "Content-Disposition" header field of this body part. For compatibility with older mailers, the "name" parameter of the "Content-Type" header is also set.
If the mail.mime.encodefilename
System property
is set to true, the MimeUtility.encodeText
method will be used to encode the
filename. While such encoding is not supported by the MIME
spec, many mailers use this technique to support non-ASCII
characters in filenames. The default value of this property
is false.
setFileName
in interface Part
filename
- the file nameIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- for other failurespublic java.io.InputStream getInputStream() throws java.io.IOException, MessagingException
This implementation obtains the input stream from the DataHandler. That is, it invokes getDataHandler().getInputStream();
getInputStream
in interface Part
java.io.IOException
- this is typically thrown by the
DataHandler. Refer to the documentation for
jakarta.activation.DataHandler for more details.MessagingException
- for other failuresgetContentStream()
,
DataHandler.getInputStream()
protected java.io.InputStream getContentStream() throws MessagingException
MessagingException
- for failurescontent
,
MimeMessage.getContentStream()
public java.io.InputStream getRawInputStream() throws MessagingException
getInputStream
method or getContent
method
from returning the correct data. In such a case the application may
use this method and attempt to decode the raw data itself.
This implementation simply calls the getContentStream
method.
MessagingException
- for failuresgetInputStream()
,
getContentStream()
public DataHandler getDataHandler() throws MessagingException
The implementation provided here works just like the the implementation in MimeMessage.
getDataHandler
in interface Part
MessagingException
- for failuresMimeMessage.getDataHandler()
public java.lang.Object getContent() throws java.io.IOException, MessagingException
This implementation obtains the content from the DataHandler. That is, it invokes getDataHandler().getContent(); If the content is a Multipart or Message object and was created by parsing a stream, the object is cached and returned in subsequent calls so that modifications to the content will not be lost.
getContent
in interface Part
java.io.IOException
- this is typically thrown by the
DataHandler. Refer to the documentation for
jakarta.activation.DataHandler for more details.MessagingException
- for other failuresDataHandler.getContent()
public void setDataHandler(DataHandler dh) throws MessagingException
setDataHandler
in interface Part
dh
- The DataHandler for the contentIllegalWriteException
- if the underlying
implementation does not support modificationjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- for other failurespublic void setContent(java.lang.Object o, java.lang.String type) throws MessagingException
The content is wrapped in a DataHandler object. Note that a
DataContentHandler class for the specified type should be
available to the Jakarta Mail implementation for this to work right.
That is, to do setContent(foobar, "application/x-foobar")
,
a DataContentHandler for "application/x-foobar" should be installed.
Refer to the Java Activation Framework for more information.
setContent
in interface Part
o
- the content objecttype
- Mime type of the objectIllegalWriteException
- if the underlying
implementation does not support modification of
existing valuesjava.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- for other failurespublic void setText(java.lang.String text) throws MessagingException
Note that there may be a performance penalty if
text
is large, since this method may have
to scan all the characters to determine what charset to
use.
If the charset is already known, use the
setText
method that takes the charset parameter.
setText
in interface MimePart
setText
in interface Part
text
- the text content to setMessagingException
- if an error occurssetText(String text, String charset)
public void setText(java.lang.String text, java.lang.String charset) throws MessagingException
setText
in interface MimePart
text
- the text content to setcharset
- the charset to use for the textMessagingException
- if an error occurspublic void setText(java.lang.String text, java.lang.String charset, java.lang.String subtype) throws MessagingException
setText
in interface MimePart
text
- the text content to setcharset
- the charset to use for the textsubtype
- the MIME subtype to use (e.g., "html")MessagingException
- if an error occurspublic void setContent(Multipart mp) throws MessagingException
setContent
in interface Part
mp
- The multipart object that is the Message's contentIllegalWriteException
- if the underlying
implementation does not support modification of
existing values.java.lang.IllegalStateException
- if this body part is
obtained from a READ_ONLY folder.MessagingException
- for other failurespublic void attachFile(java.io.File file) throws java.io.IOException, MessagingException
Part.ATTACHMENT
.file
- the File object to attachjava.io.IOException
- errors related to accessing the fileMessagingException
- message related errorspublic void attachFile(java.lang.String file) throws java.io.IOException, MessagingException
file
- the name of the file to attachjava.io.IOException
- errors related to accessing the fileMessagingException
- message related errorspublic void attachFile(java.io.File file, java.lang.String contentType, java.lang.String encoding) throws java.io.IOException, MessagingException
Part.ATTACHMENT
.file
- the File object to attachcontentType
- the Content-Type, or nullencoding
- the Content-Transfer-Encoding, or nulljava.io.IOException
- errors related to accessing the fileMessagingException
- message related errorspublic void attachFile(java.lang.String file, java.lang.String contentType, java.lang.String encoding) throws java.io.IOException, MessagingException
Part.ATTACHMENT
.file
- the name of the filecontentType
- the Content-Type, or nullencoding
- the Content-Transfer-Encoding, or nulljava.io.IOException
- errors related to accessing the fileMessagingException
- message related errorspublic void saveFile(java.io.File file) throws java.io.IOException, MessagingException
file
- the File object to write tojava.io.IOException
- errors related to accessing the fileMessagingException
- message related errorspublic void saveFile(java.lang.String file) throws java.io.IOException, MessagingException
file
- the name of the file to write tojava.io.IOException
- errors related to accessing the fileMessagingException
- message related errorspublic void writeTo(java.io.OutputStream os) throws java.io.IOException, MessagingException
writeTo
in interface Part
os
- the stream to write tojava.io.IOException
- if an error occurs writing to the
stream or if an error is generated
by the jakarta.activation layer.MessagingException
- for other failuresDataHandler.writeTo(java.io.OutputStream)
public java.lang.String[] getHeader(java.lang.String name) throws MessagingException
getHeader
in interface Part
name
- name of headerMessagingException
- for failuresMimeUtility
public java.lang.String getHeader(java.lang.String name, java.lang.String delimiter) throws MessagingException
null
, only the first header is
returned.getHeader
in interface MimePart
name
- the name of this headerdelimiter
- delimiter between fields in returned stringMessagingException
- for failurespublic void setHeader(java.lang.String name, java.lang.String value) throws MessagingException
setHeader
in interface Part
name
- header namevalue
- header valueIllegalWriteException
- if the underlying
implementation does not support modification
of existing valuesMessagingException
- for other failuresMimeUtility
public void addHeader(java.lang.String name, java.lang.String value) throws MessagingException
addHeader
in interface Part
name
- header namevalue
- header valueIllegalWriteException
- if the underlying
implementation does not support modification
of existing valuesMessagingException
- for other failuresMimeUtility
public void removeHeader(java.lang.String name) throws MessagingException
removeHeader
in interface Part
name
- the name of this headerIllegalWriteException
- if the underlying
implementation does not support modification
of existing valuesMessagingException
- for other failurespublic java.util.Enumeration<Header> getAllHeaders() throws MessagingException
getAllHeaders
in interface Part
MessagingException
- for failurespublic java.util.Enumeration<Header> getMatchingHeaders(java.lang.String[] names) throws MessagingException
getMatchingHeaders
in interface Part
names
- the headers to matchMessagingException
- for failurespublic java.util.Enumeration<Header> getNonMatchingHeaders(java.lang.String[] names) throws MessagingException
getNonMatchingHeaders
in interface Part
names
- the headers to not matchMessagingException
- for failurespublic void addHeaderLine(java.lang.String line) throws MessagingException
addHeaderLine
in interface MimePart
line
- the line to addIllegalWriteException
- if the underlying
implementation does not support modificationMessagingException
- for other failurespublic java.util.Enumeration<java.lang.String> getAllHeaderLines() throws MessagingException
getAllHeaderLines
in interface MimePart
MessagingException
- for failurespublic java.util.Enumeration<java.lang.String> getMatchingHeaderLines(java.lang.String[] names) throws MessagingException
getMatchingHeaderLines
in interface MimePart
names
- the headers to returnMessagingException
- for failurespublic java.util.Enumeration<java.lang.String> getNonMatchingHeaderLines(java.lang.String[] names) throws MessagingException
getNonMatchingHeaderLines
in interface MimePart
names
- the headers to not returnMessagingException
- for failuresprotected void updateHeaders() throws MessagingException
Content-Type
and Content-Transfer-Encoding
.
Headers might need to be updated in two cases:
Message.saveChanges
method.
If the cachedContent
field is not null (that is,
it references a Multipart or Message object), then
that object is used to set a new DataHandler, any
stream data used to create this object is discarded,
and the cachedContent
field is cleared.
MessagingException
- for failures


Sign up for my newsletter!
My Pandemic Job is as Service Leader at my local grocery store. #HannafordHero
My career has been in children's book publishing as a designer and I still help self publishers achieve the professional look of a traditionally published book on a freelance basis. Can I publish a book for you?
I am "in love with my future" ( credit: Billy Eilish ) as a web designer and developer with the skills I am building in my free time, over time. #TechyBecky!
Client Reviews
“Could not have asked for a better experience! Rebecca is a true pro, with amazing talent! I am 100% blown away by Rebecca Stone. Not only is she incredibly efficient and professional,she is very kind and warm and lovely to work with. She is very helpful, gives great feedback and suggestions for possible improvements. I am so impressed and happy with all services rendered.”
—Aren Bass,
author of Little Anya and Her Forever Family https://amzn.to/2U70F6t


Working on Firefox Gecko Engine Development (in security and UI) and with bteam, which is responsible for development of Bugzilla bug tracking system.
Working on the server side of fests at BITS Pilani Goa.
Waves: bits-waves.org
Quark: bits-quark.org
Majoring in Electronics and Instrumentation Engineering (B.E. (Hons)) Currently in 2nd year
Completed Upper Secondary Education
Percentage: 93.6%
Central Board of Secondary Education
Completed Secondary Education
CGPA: 10.00
Central Board of Secondary Education
Adjudged Student Icon of India among 200k students taking part internationally.
Opportunity for a meeting with The Former President of India, His Excellency, Dr. APJ Abdul Kalam.
Entire show was aired on The National Geographic Channel and was supported by the Ministry of Science And Technology, Govt. Of India
Runner's up in the web design and implementation round (WebTek) at International Computer Fair and Seminar (COFAS)
National Standard Examination for Chemistry is the prelims to IChO


Home
Graphic Design Samples
Time Stands Still
Rabbit Hole
Our Lady of the Clouds
India Foxtrot Mike
Print and Web Graphics
Graphic Design Samples
Contact:
indiafoxtrotmike@gmail.com


Controller Class
The heavy lifter of PICKLES, makes the calls to get the session and configuration loaded. Loads modules, serves up user authentication when the module asks for it, and loads the viewer that the module requested. Default values are present to make things easier on the user.
Located in /classes/Controller.php (line 28)
Object | --Controller
Constructor
To make life a bit easier when using PICKLES, the Controller logic is executed automatically via use of a constructor.
Destructor
Dumps out the Profiler's report if applicable.
Prepare Variables
Processes the request variable and creates all the variables that the Controller needs to load the page.
Inherited From Object
Object::__construct()
Object::getInstance()
Object::__destruct()
Documentation generated on Fri, 24 Dec 2010 19:43:54 -0500 by phpDocumentor 1.4.3


--- layout: post title: 770 Party date: 2005-12-15 00:00:00 categories: interfaces-&-interaction mobile ---
770 Party: "With way way more users on the mobile side… why isn’t the mobile web driving the wired web instead of vice-versa?"


Select size
Personal
Medium
Large
Extra Large
Select crust
Plain Crust
Garlic Butter Crust
Cheese Stuffed Crust
Spicy Crust
House Special Crust
Select sauce
Marinara Sauce
White Sauce
Barbeque Sauce
No Sauce
Select cheese
Regular Cheese
No Cheese
Extra Cheese
Select Meats
Pepperoni
Sausage
Canadian Bacon
Ground Beef
Anchovy
Chicken
Select Veggies
Tomatoes
Onions
Olives
Green Peppers
Mushrooms
Pineapple
Spinach
Jalapeno
Items Ordered:


1. Connecting to a computer
The computer provided to support this trial has, on the Desktop, a shortcut to an application called OMGUI. If you want to set up a trial or download data from a sensor, you will do it through this application
-
How to open OMGUI?
Double-click the OMGUI shortcut on the Desktop.
-
How to connect the AX3 device to a computer?
Connect the AX3 device to an usb port with the cable provided.
-
Is AX3 really connected?
If a new device appears on the Device Browser Panel, than the AX3 is connected and ready to be used.
2. Learning to work with OMGUI
OMGUI (Open Movement Graphical User Interface) is the native application to operate with the AX3 activity sensor.
-
What can I do with OMGUI?
You will be able to check the status of the devices (battery, data, and recording status), set up data collection, and download the data files from the sensor
-
What is Top Menu (A) for?
It will only available when a device is selected. Options will be Download data from device, Clear the data from the device, Schedule a recording, Stop a recording, Cancel an on progress Download and Identify which AX3 device you are interacting with (It will flash blue and purple alternatively ).
-
What is Device Browser panel (B)?
you will be able to see a list of the AX3 devices connected to the computer and their statuses. You can select a device by clicking on its row.
-
What is the plot area (C)?
If the device has data, you will see it plotted here.
-
What is Data Workspace(D) ?
You will be able to set up where you want your files to be saved, and to see the list of downloaded files.
3. Setting up Data Collection
Before you hand a device to a subject, you will need to set up data collection. In parallel, while the device is connected, it will be charging.
-
How can I put AX3 in recording Mode?
● Open OMGUI and connect the AX3 sensor to the computer with the USB cable.
● Select the device in the Device Browser Panel.
● If the battery is low, keep it connected until it charges completely (a value above 85% is considered acceptable to issue for usage).
● If the device shows to have data, press “Clear” in the Top Menu.
● Press the Record button, in the Top Menu.
-
What Recording Session ID should I put (1) ?
It will be the Visit Number followed by the Patient Number (of the visit, when the device is handed to the subject).
Visit Codes: V2B, V3, and V4.
Example: Subject no. P452, visit V2B, Recording Session ID V2B_P452
-
What about the sampling (2)(3) ?
Sampling Frequency: 100.
Sampling Range: 8.
-
How should the recording setting be (4)(5)(6)(7)(8) ?
Recording Time Schedule: Interval.
Start Date: it should be set to three days before the next onsite visit. As an example, if the visit is on the 14th (any time), the start date will be on the 11th.
Start Time: should be set to 00:00.
Delay: do not change this value.
Duration: the value should be of 5 days.
End Date: do not change this value.
-
How should I proceed with other options (9)(10)(11)(12) ?
Study Centre: Put the initials.
Investigator: Put the initials.
Subject: input the Patient number.
Flash when Recording: Do not tick it.
Unpacked data: Do not tick it.
Warnings: Its an alert to tell you aditional information, like if the battery status will cover all the days selected. In general it should not invalidate the record process, but if you have doubts please contact us.
-
Do I need to do anything else ?
Please disconnect the device from the computer. The record in now set and will start at the date and time scheduled.
Please do not forget to document the serial number of the sensor in the medical records of the subject and in e-CRF.
4. Wearing the activity bracelet
We kindly ask you to wear a bracelet with an activity sensor for a period of three days prior to some of your on-site visits. This bracelet is designed to be the least intrusive and you should be able to perform your daily activities without any negative impact in your life throughout these days. Below is a simple set of instructions.
-
When to wear the bracelet?
We kindly ask you to wear the bracelet the complete three days before the on-site visits V2B, V3, and V4. For example, if you have an appointment on the 14th, you should wear the bracelet on the 11th, 12th, and 13th, and leave it on until the appointment. We will call to remind you to put the bracelet approximately one day before you have to.
-
When should you take the bracelet off?
During the three days, you should wear the bracelet continuously, including during the night and bath time (it is waterproof). However, if you feel uncomfortable doing any particular activity with the bracelet (for example, while taking a bath), you may remove it temporarily. You should put it on again right away when possible.
-
How to wear the bracelet?
It should be worn on the wrist of your non-dominant hand, as if it was a regular watch.
-
What if the sensor gets out of the bracelet?
You should not remove the sensor from the bracelet. However, if that happens, you just have to put it back, as in the Figure. The sensor should be inserted in the bracelet with the letters (“Axivity”) and a small arrow visible to you. Then, the arrow on the bracelet should align with the arrow on the sensor. Insert it manually without any auxiliary tool.
-
What if the bracelet starts flashing a brief red light?
It is not expected that the device runs out of battery. However, if the bracelet starts flashing a red light, it means that it somehow happened. In that case, we ask you to report to the site for a replacement.
5. Collecting and storing the data
When the trial subjects bring the bracelet to the visits V2B, V3, and V4, you will need to download the data to the PC.
-
How can I Store data?
● Open OMGUI and connect the sensor (after removing it from the bracelet) to an USB port on the computer
● When the device is recognized, check the status of the recording. If it still shows as being recording, press “Stop”, in the Top Menu
● Press download button.This will take a while: you will see the progress of the download in the respective field, in the Device Browser Panel; make sure it gets to 100%.
-
What is Data Workspace Panel (1)(2) ?
It shows the current workspace (1) with all the files associated with it and also allows to select a new workspace (2).
-
How can I select a new workspace?
Click on Choose Working Folder (2) and select a new one.
If they are not created, create the following folders in your desktop: there should be a top folder named “data”. Inside that folder, there should be a sub-folder for each subject, i.e., the folder is named with the Patient Number. Inside each subject’s folder, there should be a folder for each visit (V2B, V3, and V3B). Select the folder for the current Subject and Visit.
-
How can I assure if data was saved?
Please go to the folder in the desktop and check if the file was correctly saved in the subject and visit subfolders.
Take a look at the Data Preview Panel. If the graph shows no activity, try to understand if it wasn’t worn by the subject, and re-explain the procedure
To verify if the device was worn please select it on the Data Workspace Panel and press Wear Time. Leave the epoch field with 1 and then press ok. Finally open the new created file (It should be on the desktop under the same folder as the downloaded file ).
-
How should I leave the device ?
Please Clear is contents, by selecting the device and press clear on the Top Menu.
Finally, disconect the sensor from the USB port, if you are not using more.


String.repeat()
method (available since Java 11). E.g.:
for(int i=0; i<count; i++) { sb.append('*'); }Such code could be replaced with
sb.append("*".repeat(count));
By default the inspection may wrap count expression with Math.max(0, count)
if it cannot prove statically that count is
non-negative. This is done to prevent possible semantics change, as String.repeat()
rejects negative numbers.
You may disable this behavior via option if you don't like it. Similarly a String to repeat could be wrapped with
String.valueOf
to prevent possible NullPointerException
if it's unknown whether it could be null
.
New in 2019.1


|
|
|
|
?url=
parameterSpreadsheet Editor supports most of the functions available in a typical spreadsheet software application. We have maintained a list of functions for your help.
We continuously update this list with new functions and formulas as more and more are added to every new release of product. So the list may not be final.


IMPLEMENTING BINARY SEARCH TREE IN C++
To create a BST in C++, we need to modify our Tree Node class in the preceding binary tree
discussion, Building a binary tree ADT. We need to add the Parent properties so that we can track
the parent of each node. It will make things easier for us when we traverse the tree. The class
should be as follows:
THINGS YOU CAN USE THE BINARY SERACH TREE TO DO
There are some operations used in the BST(Binary Search Tree) has and they are mentioned below:
• Insert(): is used to add new nodes to the current BST. If it’s the first time adding a node, then
the node inserted will be known as a root node.
• PrintTreeInOrder(): is used to print all the keys in the binary search tree. It is usually sorted
out from the smallest key to the largest key.
• Search(): is used to find/search for a given key in the binary search key. If the key exists it
returns TRUE, else it returns FALSE.
• FindMin() and FindMax(): is used to find the minimum and maximum key that exist in the
binary search tree.
• Successor() and Predecessor(): is used find the successor and predecessor of a given key.
• Remove(): is used to remove a given key in binary search tree.
Inserting a new key into the BTS is literally adding a new node based on the behaviour of
the BTS. When we want to insert a key we compare it to the root node(if it doesn’t have a root
beforehand , the newly inserted key becomes the root) and we check if it is smaller or greater
current the root’s key. But if the given key is greater than the currently selected one, then go to the
right subtree. Else go to the left subtree if the given key is currently smaller than the currently
selected node’s key. Then we keep checking until there is a node without a child in order to add a
new node. Below is the implementation of the Insert() operation in C++.
As we can see in the preceding code, we need to pass the selected node
and a new key to the function. However, we will always pass the root node as the
selected node when performing the Insert() operation, so we can invoke the
preceding code with the following Insert() function:
Based on the implementation of the Insert() operation, we can see that the time complexity
to insert a new key into the BST is O(h) where h is the height of the BST. Based on the
implementation of the Insert() operation, we can see that the time complexity to insert a new key
into the BST is O(1), which is the best case scenario. And, if we insert a new key into a skewed tree,
the time complexity will be O(N), where N is the total number of keys in the BST, which is the worst
case scenario.
TRAVERSING A BST IN ORDER
We have successfully created a new BST and can insert a new key into it. Now, we need to
implement the PrintTreeInOrder() operation, which will traverse the BST in order from the smallest
key to the greatest key. To achieve this, we will go to the leftmost node and then to the rightmost
node. The code should be as follows:
Since we will always search for a key from the root node, we can create another Search() function as
follows:
The time complexity of the PrintTreeInOrder() function will be O(N), where N is
the total number of keys for both the best and the worst cases since it will always
traverse to all keys.
FINDING OUT IF A KEY EXIST IN A BST
Suppose we have a BST and need to find out if a key exists in the BST. It’s quite
easy to check whether a given key exists in a BST, since we just need to compare the
given key with the current node. If the key is smaller than the current node’s key, we go
to the left subtree, otherwise we go to the right subtree. We will do this until we find
the key or when there are no more nodes to find. The implementation of
the Search() operation should be as follows:
Since we will always search for a key from the root node, we can create
another Search() function as follows:
The time complexity to find out a key in the BST is O(h), where h is the height of the
BST.If we find a key which lies in the root node, the time complexity will be O(1), which
is the best case. If we search for a key in a skewed tree, the time complexity will be
O(N), where N is the total number of keys in the BST, which is the worst case.
RETRIEVING MAXIMUM AND MINIMUM KEY VALUES
Finding out the minimum and maximum key values in a BST is also quite simple. To get a minimum key value,
we just need to go to the leftmost node and get the key value. On the contrary, we just need to go
to the rightmost node and we will find the maximum key value. The following is the implementation of
the FindMin() operation to retrieve the minimum key value, and the FindMax() operation to retrieve
the maximum key value:
We return -1 if we cannot find the minimum or maximum value in the tree, since we assume that
the tree can only have a positive integer. If we intend to store the negative integer as well,
we need to modify the function’s implementation, for instance, by returning NULL if no minimum or
maximum values are found. As usual, we will always find the minimum and maximum key values from the
root node, so we can invoke the preceding operations as follows:
Similar to the Search() operation, the time complexity of the FindMin() and FindMax() operations
is O(h), where h is the height of the BST. However, if we find the maximum key value in a skewed
left BST, the time complexity will be O(1), which is the best case, since it doesn’t have any
right subtree. This also happens if we find the minimum key value in a skewed right BST.
The worst case will appear if we try to find the minimum key value in a skewed left BST or try to
find the maximum key value in a skewed right BST, since the time complexity will be O(N).


Hello, My name is Fayas Noushad. I am a 15 years old. I was born on 30th December in 2005. I am a 10th standard finished student. I'm living in Palakkad, Kerala, India. The languages I know are Malayalam, Tamil, and English. I am an Opensource Developer. You can check my brief bio here.
You can send messages via email or you can contact me via my accounts and please follow / subscribe / join my accounts.
I created more public projects like APIs, Python Packages, Opensource Repositories etc. You can checkout my projects here.
Your donation needed for me. Please donate any amount via my donation links.


OpenUrl RNA CrossRef viral sequencing late genome adenovirus using transcripts FREE Text reads Abstract gene sites short-read early expression splice DNA data transcription Adenovirus novel AdV discovered splicing strand transcriptional SNPs long-read polyadenylation protein RNA-seq Science Virol. Web sequence transcriptome CPAS Illumina amino detected acid genes infection isoforms new shown L-K RNAs cells read performed previously reading reference reverse Figure ORF TSS canonical direct infection. nucleotide transcript ./JVI.- ORFs Virology. bars denote downstream events full-length highlighted human nanopore Using aligned analysis base cell generated genome, junctions poly(A) proteins regions units Direct Viral able annotated cellular detect frames high hours infected open region single used vertical Berk Sequencing cleavage complexity corrected dRNA-seq encode genomes host indicate mapping site type virus ContextMap Furthermore, Human Nat RNA. Res. Sequence additional aligning black boxes change depth detection encoded encodes expressed files forward functions fusion isoform known low mutations orientation particular position potentially predict promoter provided respectively. start study untranslated &; BED Bioinformatics. Cell Cell. EA, Major Sci Weitzman abundance abundant addition, annotation approach characterized compared denoting derived extracted following fully genome. individual information involved lead leading number overlapping polyadenylated polymorphisms predicted products quality replication revealed reveals serotypes technologies total truncations viruses (SNPs) (UTR), A.M.P. DBP EB, EB-K Eorf Fiber GSNAP Host III-derived IVa Late Mol Nanopore Novel PCR Promoter RNA-Seq RNAs, Resulting SNP, Technologies Transcription UXP [[#x]] adenoviral algorithm alignment allows alternative arrowheads associated biological blue blue), complex conserved containing data. denoted did driven ends existing fragments frame genes, highly identify identity internal leader level light likely lines molecules multiple newly post preceding primary putative re-annotated red remaining replicates reported sequencing, small spliced subsequently text time time-course transcription. transcripts, tripartite unambiguous unambiguously units, upstream variants


BONGIES ZULU TEL; +27-76-223-9702 E-mail<EMAIL_ADDRESS>Dear Sir/Madam, I am BONGIES ZULU from Cape Town, South Africa and I am an Executive Accountant with the South Africa Department of Mining & Natural Resources affiliated (created) to the Department of Minerals and Energy. First and foremost, I apologized using this medium to reach you for a transaction/business of this magnitude, but this is due to Confidentiality and prompt access reposed on this medium. Be informed that a member of the South African Export Promotion Council (SEPC) who was at the Government delegation to your country during a trade exhibition gave your enviable credentials/particulars to me. I plea to seek a confidential co-operation with you in the execution of the deal described Hereunder for the benefit of all parties and hope you will keep it as a top secret because of the nature of this transaction. Within the Department of Mining & Natural Resources where I work as an Executive Accountant and with the cooperation of two other top officials, we have in our possession as overdue payment bills totaling TEN MILLION FIVE HUNDRED THOUSAND US DOLLAR, (10.5) which we want to transfer abroad with the assistance and cooperation of a foreign company/individual to receive the said fund on our behalf or a reliable foreign non-company account to receive such funds. More so, we are handicapped in the circumstances, as the South Africa Civil Service Code of Conduct does not allow us to operate offshore account hence your importance in the whole transaction. This amount TEN MILLION FIVE HUNDRED THOUSAND UNITED STATES DOLLAR ($10.5m) represents the balance of the total contract value executed on behalf of my Department by a foreign contracting firm, which we the officials over-invoiced deliberately. Though the actual contract cost have been paid to the original contractor, leaving the balance in the tune of the said amount which we have in principles gotten approval to remit by Telegraphic Transfer (T.T) to any foreign bank account you will provide by filing in an application through the Justice Ministry here in South Africa for the transfer of rights and privileges of the former contractor to you. I have the authority of my partners involved to propose that, should you be willing to assist us in this transaction that is 100% hitch free, your share of the sum will be 25% of the $10.5 million, 70% for us and 5% for taxation and miscellaneous expenses. The business itself is 100% safe, on your part provided you treat it with utmost secrecy and confidentiality. Also your area of specialization is not a hindrance to the successful execution of this transaction. I have reposed my confidence in you and hope that you will not disappoint me. Endeavor to contact me through above e-mail address or the fax number whether or not you are interested in this deal. If you are not, it will enable me scout for another foreign partner to carry out this deal I want to assure you that my partners and myself are in a position to make the payment of this claim possible provided you can give us a very strong Assurance and guarantee that our share will be secured. And please remember to treat this as very confidential because, we will not comprehend with any form of exposure as we are still in active Government Service and remember once again that, time is of the essence in this business. I wait in anticipation of your fullest co-operation. Yours faithfully, BONGIES ZULU _________________________________________________________________ Get news headlines and download FREE stuff - visit MSN South Africa! http://www.msn.co.za/


Instagrim
post pictures that you will regret later
Act first, think later
Refer to pictures in the Samples folder as reference


This example includes rot.js using a pre-built JavaScript bundle. Every browser supports this mechanism without the need to bundle/compile your code. You will, however, always load the complete library, even if you plan on using only a small part of it.


Ov Father Ov Satan Ov Son
This JS function will capitalize the valueEnter the value:
Rusty Cooley from Day of Reckoning.
David Davidson from Revocation.


| Package | Description |
|---|---|
| javaGOAP |
| Modifier and Type | Field and Description |
|---|---|
(package private) java.util.HashSet<GoapState> |
GraphNode.effects |
private java.util.HashSet<GoapState> |
GoapAction.effects |
private java.util.List<GoapState> |
GoapUnit.goalState |
(package private) java.util.HashSet<GoapState> |
GraphNode.preconditions |
private java.util.HashSet<GoapState> |
GoapAction.preconditions |
private java.util.HashMap<WeightedPath<GraphNode,WeightedEdge>,java.util.HashSet<GoapState>> |
GraphNode.storedEffectStates |
private java.util.HashSet<GoapState> |
GoapUnit.worldState |
| Modifier and Type | Method and Description |
|---|---|
private java.util.HashSet<GoapState> |
GraphNode.addPathEffectsTogether(WeightedPath<GraphNode,WeightedEdge> pathToPreviousNode,
WeightedPath<GraphNode,WeightedEdge> path)
Function for adding all effects in a path together to get the effect at
the last node in the path.
|
protected java.util.HashSet<GoapState> |
GoapAction.getEffects() |
(package private) java.util.HashSet<GoapState> |
GraphNode.getEffectState(WeightedPath<GraphNode,WeightedEdge> pathKey) |
java.util.List<GoapState> |
IGoapUnit.getGoalState() |
java.util.List<GoapState> |
GoapUnit.getGoalState() |
protected java.util.HashSet<GoapState> |
GoapAction.getPreconditions() |
java.util.HashSet<GoapState> |
IGoapUnit.getWorldState() |
java.util.HashSet<GoapState> |
GoapUnit.getWorldState() |
protected java.util.List<GoapState> |
GoapPlanner.sortGoalStates()
Function for sorting a goapUnits goalStates (descending).
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
GoapAction.addEffect(GoapState effect)
Add a effect, which is not already in the HashSet
|
protected void |
GoapUnit.addGoalState(GoapState newGoalState) |
protected void |
GoapAction.addPrecondition(GoapState precondition)
Add a precondition, which is not already in the HashSet.
|
protected void |
GoapUnit.addWorldState(GoapState newWorldState) |
protected void |
GoapUnit.changeGoalImmediatly(GoapState newGoapState)
This function can be called by a subclass if the efforts of the unit
trying to archive a specific goal should be paused to fulfill a more
urgent goal.
|
private void |
GoapUnit.dispatchNewImportantUnitGoalChangeEvent(GoapState newGoalState) |
void |
ImportantUnitChangeEventListener.onImportantUnitGoalChange(GoapState newGoalState)
This event is needed to change a current goal to a new one, while keeping
the old one on the FSM-Stack for its later execution.
|
void |
GoapAgent.onImportantUnitGoalChange(GoapState newGoalState) |
protected boolean |
GoapAction.removeEffect(GoapState effect)
Overloaded function for convenience.
|
protected void |
GoapUnit.removeGoalStat(GoapState goapState) |
protected boolean |
GoapAction.removePrecondition(GoapState precondition)
Overloaded function for convenience.
|
protected void |
GoapUnit.removeWorldState(GoapState goapState) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
GoapPlanner.addVertices(IWeightedGraph<GraphNode,WeightedEdge> graph,
java.util.List<GoapState> goalState)
Function for adding vertices to a graph.
|
protected static boolean |
GoapPlanner.areAllPreconditionsMet(java.util.HashSet<GoapState> preconditions,
java.util.HashSet<GoapState> effects)
Function for testing if all preconditions in a given HashSet are also in
another HashSet (effects) with the same values.
|
protected static boolean |
GoapPlanner.areAllPreconditionsMet(java.util.HashSet<GoapState> preconditions,
java.util.HashSet<GoapState> effects)
Function for testing if all preconditions in a given HashSet are also in
another HashSet (effects) with the same values.
|
protected IWeightedGraph<GraphNode,WeightedEdge> |
GoapPlanner.createGraph(java.util.List<GoapState> goalState)
Function to create a graph based on all possible unit actions of the
GoapUnit for (a) specific goal/-s.
|
protected void |
GoapUnit.setGoalState(java.util.List<GoapState> list) |
protected void |
GoapUnit.setWorldState(java.util.HashSet<GoapState> worldState) |
| Constructor and Description |
|---|
GraphNode(java.util.HashSet<GoapState> preconditions,
java.util.HashSet<GoapState> effects) |
GraphNode(java.util.HashSet<GoapState> preconditions,
java.util.HashSet<GoapState> effects) |


About
miDoctor
"Find Doctors near Portland, OR Tailored to your Needs!"
Enter Medical Issue:
Enter Max Distance (mi):
Sort-by:
Full Name Asc
Full Name Desc
Last Name Asc
Last Name Desc
First Name Asc
First Name Desc
Best Match Asc
Best Match Desc
Rating Asc
Rating Desc
Distance Asc
Distance Desc
Enter Max Doctors Displayed:
Find Doctors
Search Results


bbc1.core.data_handler module¶
Copyright (c) 2017 beyond-blockchain.org.
Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
-
class
bbc1.core.data_handler.
DataHandler
(networking=None, config=None, workingdir=None, domain_id=None, loglevel='all', logname=None)[source]¶ Bases:
object
DB and storage handler
-
NOTIFY_INSERTED
= b'\x00\x04'¶
-
REPAIR_TRANSACTION_DATA
= b'\x00\x05'¶
-
REPLICATION_ALL
= 0¶
-
REPLICATION_CROSS_REF
= b'\x00\x06'¶
-
REPLICATION_EXT
= 2¶
-
REPLICATION_P2P
= 1¶
-
REQUEST_REPLICATION_INSERT
= b'\x00\x00'¶
-
REQUEST_SEARCH
= b'\x00\x02'¶
-
RESPONSE_REPLICATION_INSERT
= b'\x00\x01'¶
-
RESPONSE_SEARCH
= b'\x00\x03'¶
-
count_domain_in_cross_ref
(outer_domain_id)[source]¶ Count the number of domains in the cross_ref table
-
count_transactions
(asset_group_id=None, asset_id=None, user_id=None, db_num=0)[source]¶ Count transactions that matches the given conditions
When Multiple conditions are given, they are considered as AND condition.
Parameters: - asset_group_id (bytes) – asset_group_id that target transactions should have
- asset_id (bytes) – asset_id that target transactions should have
- user_id (bytes) – user_id that target transactions should have
- db_num (int) – index of DB if multiple DBs are used
Returns: the number of transactions
Return type: int
-
exec_sql
(db_num=0, sql=None, args=(), commit=False, fetch_one=False)[source]¶ Execute sql sentence
Parameters: - db_num (int) – index of DB if multiple DBs are used
- sql (str) – SQL string
- args (list) – Args for the SQL
- commit (bool) – If True, commit is performed
- fetch_one (bool) – If True, fetch just one record
Returns: list of records
Return type: list
-
get_asset_info
(txobj)[source]¶ Retrieve asset information from transaction object
Parameters: txobj (BBcTransaction) – transaction object to analyze Returns: list of list [asset_group_id, asset_id, user_id, file_size, file_digest] Return type: list
-
get_in_storage
(asset_group_id, asset_id)[source]¶ Get the asset file with the asset_id from local storage
Parameters: - asset_group_id (bytes) – asset_group_id of the asset
- asset_id (bytes) – asset_id of the asset
Returns: the file content
Return type: bytes or None
-
insert_cross_ref
(transaction_id, outer_domain_id, txid_having_cross_ref, no_replication=False)[source]¶ Insert cross_ref information into cross_ref_table
Parameters: - transaction_id (bytes) – target transaction_id
- outer_domain_id (bytes) – domain_id that holds cross_ref about the transaction_id
- txid_having_cross_ref (bytes) – transaction_id in the outer_domain that includes the cross_ref
- no_replication (bool) – If False, the replication is sent to other nodes in the domain
-
insert_transaction
(txdata, txobj=None, fmt_type=0, asset_files=None, no_replication=False)[source]¶ Insert transaction data and its asset files
Either txdata or txobj must be given to insert the transaction.
Parameters: - txdata (bytes) – serialized transaction data
- txobj (BBcTransaction) – transaction object to insert
- fmt_type (int) – 2-byte value of BBcFormat type
- asset_files (dict) – asset files in the transaction
Returns: set of asset_group_ids in the transaction
Return type: set
-
remove
(transaction_id, txobj=None, db_num=-1)[source]¶ Delete all data regarding the specified transaction_id
This method requires either transaction_id or txobj.
Parameters: - transaction_id (bytes) – target transaction_id
- txobj (BBcTransaction) – transaction object to remove
- db_num (int) – index of DB if multiple DBs are used
-
search_domain_having_cross_ref
(transaction_id=None)[source]¶ Search domain_id that holds cross_ref about the specified transaction_id
Parameters: transaction_id (bytes) – target transaction_id Returns: records of cross_ref_tables [“id”,”transaction_id”, “outer_domain_id”, “txid_having_cross_ref”] Return type: list
-
search_transaction
(transaction_id=None, asset_group_id=None, asset_id=None, user_id=None, direction=0, count=1, db_num=0)[source]¶ Search transaction data
When Multiple conditions are given, they are considered as AND condition.
Parameters: - transaction_id (bytes) – target transaction_id
- asset_group_id (bytes) – asset_group_id that target transactions should have
- asset_id (bytes) – asset_id that target transactions should have
- user_id (bytes) – user_id that target transactions should have
- direction (int) – 0: descend, 1: ascend
- count (int) – The maximum number of transactions to retrieve
- db_num (int) – index of DB if multiple DBs are used
Returns: mapping from transaction_id to serialized transaction data dict: dictionary of {asset_id: content} for the transaction
Return type: dict
-
search_transaction_topology
(transaction_id, traverse_to_past=True)[source]¶ Search in topology info
Parameters: - transaction_id (bytes) – base transaction_id
- traverse_to_past (bool) – True: search backward (to past), False: search forward (to future)
Returns: list of records of topology table
Return type: list
-
store_in_storage
(asset_group_id, asset_id, content, do_overwrite=False)[source]¶ Store asset file in local storage
Parameters: - asset_group_id (bytes) – asset_group_id of the asset
- asset_id (bytes) – asset_id of the asset
- content (bytes) – the content of the asset file
- do_overwrite (bool) – If True, file is overwritten
Returns: True if successful
Return type: bool
-
-
class
bbc1.core.data_handler.
DataHandlerDomain0
(networking=None, config=None, workingdir=None, domain_id=None, loglevel='all', logname=None)[source]¶ Bases:
bbc1.core.data_handler.DataHandler
Data handler for domain_global_0
-
exec_sql
(sql, *args)[source]¶ Execute sql sentence
Parameters: - db_num (int) – index of DB if multiple DBs are used
- sql (str) – SQL string
- args (list) – Args for the SQL
- commit (bool) – If True, commit is performed
- fetch_one (bool) – If True, fetch just one record
Returns: list of records
Return type: list
-
get_asset_info
(txobj)[source]¶ Retrieve asset information from transaction object
Parameters: txobj (BBcTransaction) – transaction object to analyze Returns: list of list [asset_group_id, asset_id, user_id, file_size, file_digest] Return type: list
-
get_in_storage
(asset_group_id, asset_id)[source]¶ Get the asset file with the asset_id from local storage
Parameters: - asset_group_id (bytes) – asset_group_id of the asset
- asset_id (bytes) – asset_id of the asset
Returns: the file content
Return type: bytes or None
-
insert_transaction
(txdata, txobj=None, asset_files=None, no_replication=False)[source]¶ Insert transaction data and its asset files
Either txdata or txobj must be given to insert the transaction.
Parameters: - txdata (bytes) – serialized transaction data
- txobj (BBcTransaction) – transaction object to insert
- fmt_type (int) – 2-byte value of BBcFormat type
- asset_files (dict) – asset files in the transaction
Returns: set of asset_group_ids in the transaction
Return type: set
-
remove
(transaction_id)[source]¶ Delete all data regarding the specified transaction_id
This method requires either transaction_id or txobj.
Parameters: - transaction_id (bytes) – target transaction_id
- txobj (BBcTransaction) – transaction object to remove
- db_num (int) – index of DB if multiple DBs are used
-
search_transaction
(transaction_id=None, asset_group_id=None, asset_id=None, user_id=None, count=1)[source]¶ Search transaction data
When Multiple conditions are given, they are considered as AND condition.
Parameters: - transaction_id (bytes) – target transaction_id
- asset_group_id (bytes) – asset_group_id that target transactions should have
- asset_id (bytes) – asset_id that target transactions should have
- user_id (bytes) – user_id that target transactions should have
- direction (int) – 0: descend, 1: ascend
- count (int) – The maximum number of transactions to retrieve
- db_num (int) – index of DB if multiple DBs are used
Returns: mapping from transaction_id to serialized transaction data dict: dictionary of {asset_id: content} for the transaction
Return type: dict
-
search_transaction_topology
(transaction_id, reverse_link=False)[source]¶ Search in topology info
Parameters: - transaction_id (bytes) – base transaction_id
- traverse_to_past (bool) – True: search backward (to past), False: search forward (to future)
Returns: list of records of topology table
Return type: list
-
store_in_storage
(asset_group_id, asset_id, content)[source]¶ Store asset file in local storage
Parameters: - asset_group_id (bytes) – asset_group_id of the asset
- asset_id (bytes) – asset_id of the asset
- content (bytes) – the content of the asset file
- do_overwrite (bool) – If True, file is overwritten
Returns: True if successful
Return type: bool
-
-
class
bbc1.core.data_handler.
DbAdaptor
(handler=None, db_name=None, db_num=0, loglevel='all', logname=None)[source]¶ Bases:
object
Base class for DB adaptor
-
class
bbc1.core.data_handler.
MysqlAdaptor
(handler=None, db_name=None, db_num=None, server_info=None, loglevel='all', logname=None)[source]¶ Bases:
bbc1.core.data_handler.DbAdaptor
DB adaptor for MySQL
-
create_table
(tbl, tbl_definition, primary_key=0, indices=[])[source]¶ Create a table
Parameters: - tbl (str) – table name
- tbl_definition (list) – schema of the table [[“column_name”, “data type”],[“colmun_name”, “data type”],,]
- primary_key (int) – index (column) of the primary key of the table
- indices (list) – list of indices to create index
-
-
class
bbc1.core.data_handler.
SqliteAdaptor
(handler=None, db_name=None, loglevel='all', logname=None)[source]¶ Bases:
bbc1.core.data_handler.DbAdaptor
DB adaptor for SQLite3
-
create_table
(tbl, tbl_definition, primary_key=0, indices=[])[source]¶ Create a table
Parameters: - tbl (str) – table name
- tbl_definition (list) – schema of the table [[“column_name”, “data type”],[“colmun_name”, “data type”],,]
- primary_key (int) – index (column) of the primary key of the table
- indices (list) – list of indices to create index
-