text:
=pod

=head1 NAME

Date::Manip::Problems - problems and bugs

=head1 KNOWN PROBLEMS

The following are not bugs in Date::Manip, but they may give some people
problems.

=over 4

=item B<Unable to determine Time Zone>

If you ever get the message that Date::Manip was unable to determine the
timezone, you need to provide that information to your script.
Please refer to the L<Date::Manip::TZ> documentation for a discussion
of this problem.

=item B<Calculations appear to be off by an hour>

Due to daylight saving time (especially the spring change where
the time typically moves forward from 02:00 to 03:00), any date
calculation which would intuitively report a time in that range
will also move forward (or backward as the case may be).

*NOTE* This should be less of a problem since 6.30 with the addition
of semi-exact deltas.

=item B<Missing date formats>

Due to the large number of date formats that Date::Manip CAN process,
people often assume that other formats that they want to use should
work as well, and when they don't, it comes as a surprise.

With the much improved parsing of 6.00, many formats can be added
easily, though unless they are of general use, I'll probably suggest
that you use parse_format instead.

There is a class of formats that I do not plan to add however.

I have frequently been asked to add formats such as "the 15th of last
month", or "Monday of next week". I do not intend to add these date
formats to Date::Manip, but since I have received the request several
times, I decided to include my reasoning here.

Date::Manip can parse pretty much any static date format that I could
think of or find reference to. Dates such as "today", "Jan 12", or
"2001-01-01" are all understood.

These are fairly limited however. Many very common date formats are
best thought of as a date plus a modification. For example,
"yesterday" is actually determined internally as "today" plus a
modification of "- 1 day".  "2nd Sunday in June" is determined as
"June 1" modified to the 2nd Sunday.

As these types of formats were added over time, I quickly realized
that the number of possible date plus modification formats was
huge. The number of combinations has caused the parsing in Date::Manip
to be quite complex, and adding new formats occasionally causes
unexpected conflicts with other formats.

The first time I received a request similar to "the 15th of last
month", I intended to add it, but as I analyzed it to see what changes
needed to be made to support it, I realized that this needed to be
expressed as a date plus TWO modifications. In other words, today
modified to last month modified to the 15th day of the month.

As bad as date plus modification formats are, a date plus TWO
modifications would be exponentially worse. On realizing that, I
decided that Date::Manip will not support this type of format.

Although I apologize for the inconvenience, I do not intend to change
my position on this.

=item B<Date::Manip is slow>

Date::Manip is one of the slower Date/Time modules due to the fact that
it is huge and written entirely in perl.  I have done a lot of work
optimizing it since 6.xx came out, and additional work is planned,
but even at it's best, it will probably be slower than other modules.

Some things that will definitely help:

Date::Manip 5.xx was very slow.  A lot of work went into speeding it up
as I rewrote it for the 6.xx release, and it should be noted that
initial tests show version 6.xx to be around twice as fast as 5.xx.
There is one notable exception to this speedup.  If you use Date::Manip
to parse dates from a wide variety of timezones, 6.xx will be significantly
slower than 5.xx.  The reason for this is that each time a new timezone is
accessed, 6.xx does quite a bit of work to initialize it.  5.xx does not
have this overhead, so it can parse dates from any number of timezones
without a speed penalty.  However, 5.xx does NOT handle timezones correctly,
so many of the dates will be incorrect.  If timezones are important to you,
there is no way to use 5.xx and get accurate results.

If you only parse dates from a single timezone (which is more often what
you are doing), 6.xx is significantly faster than 5.xx.

ISO-8601 dates are parsed first and fastest.  If you have the flexibility
to define the date format, use ISO-8601 formats whenever possible.

Avoid parsing dates that are referenced against the current time (in 2
days, today at noon, etc.).  These take a lot longer to parse.

Business date calculations are extremely slow.  You should consider
alternatives if possible (i.e. doing the calculation in exact mode and
then multiplying by 5/7).  Who needs a business date more accurate
than "6 to 8 weeks" anyway, right :-)

=item B<Memory leak>

There is a known memory leak in perl related to named regexp captures
that directly affects Date::Manip . The leak is in all versions of
perl up to (and including) the following versions:

   5.10.1
   5.12.5
   5.14.3
   5.15.5

The bug has been fixed in:

   5.15.6
   5.16.0

If a maintenance release is done for any of the other releases (5.10,
5.12, 5.14), that includes the patch, I'll update this section to
include that information.

Date::Manip 5.xx is not susceptible, so using it may be a feasible
workaround, but if you need accurate timezone handling, this isn't
possible.

Simple tests estimate the leak to be about 3 MB per 10,000 dates
parsed, so unless you're parsing hundreds of thousands, or millions of
dates, the leak probably won't be a problem on systems with moderate
amounts of memory. And if you're parsing that many dates, the
relatively slow Date::Manip may not be the correct module for you to
use anyway.

=item B<Dmake error on strawberry perl>

Users of Strawberry perl on windows may encounter an error similar
to the following:

   dmake: makefile: line 3016: Error: -- Input line too long, increase MAXLINELENGTH

This is a known problem with some versions of strawberry perl, and
I can't fix it in Date::Manip.  If you encounter this problem, you
can install the package manually using the commands:

   c:> cpan
   cpan> look Date::Manip::Date
   > perl Makefile.PL
   > dmake MAXLINELENGTH=300000 make
   > dmake MAXLINELENGTH=300000 make test
   > dmake MAXLINELENGTH=300000 make install

You can find more details here:

   http://www.nntp.perl.org/group/perl.win32.vanilla/2011/02/msg287.html

=item B<Using functions/methods which are not supported>

There have been a handful of incidents of people using a function from
Date::Manip which were not documented in the manual.

Date::Manip consists of a large number of user functions which are
documented in the manual. These are designed to be used by other
programmers, and I will not make any backwards incompatible changes in
them unless there is a very compelling reason to do so, and in that
case, the change will be clearly documented in the
L<Date::Manip::Changes6> documentation for this module.

Date::Manip also includes a large number of functions which are NOT
documented. These are for internal use only.  Please do not use them!
I can (and do) change their functionality, and even their name, without notice,
and without apology!  Some of these internal functions even have test
scripts, but that is not a guarantee that they will not change, nor is
any support implied. I simply like to run regression tests on as much
of Date::Manip as possible.

As of the most recent versions of Date::Manip, all internal functions
have names that begin with an underscore (_). If you choose to use
them directly, it is quite possible that new versions of Date::Manip
will cause your programs to break due to a change in how those
functions work.

Any changes to internal functions will not be documented, and will not
be regarded by me as a backwards incompatibility. Nor will I (as was
requested in one instance) revert to a previous version of the
internal function.

If you feel that an internal function is of more general use, feel
free to contact me with an argument of why it should be "promoted".  I
welcome suggestions and will definitely consider any such request.

=item B<RCS Control>

If you try to put Date::Manip under RCS control, you are going to have
problems.  Apparently, RCS replaces strings of the form "$Date...$" with
the current date.  This form occurs all over in Date::Manip.  To prevent the
RCS keyword expansion, checkout files using:

   co -ko

Since very few people will ever have a desire to do this (and I don't
use RCS), I have not worried about it, and I do not intend to try to
workaround this problem.

=back

=head1 KNOWN COMPLAINTS

Date::Manip 6.xx has gotten some complaints (far more than 5.xx if the
truth be told), so I'd like to address a couple of them here.  Perhaps
an understanding of why some of the changes were made will allay some
of the complaints.  If not, people are always welcome to stick with
the 5.xx release. I will continue to support the 5.xx releases for a
couple years (though I do NOT plan to add functionality to it).

These complaints come both from both the CPAN ratings site:

   http://cpanratings.perl.org/dist/Date-Manip

and from personal email.

=over 4

=item B<Requires perl 5.10>

The single most controversial change made in 6.00 is that it now
required perl 5.10.0 or higher. Most of the negative feedback I've
received is due to this.

In the past, I've avoided using new features of perl in order to allow
Date::Manip to run on older versions of perl.  Prior to perl 5.10,
none of the new features would have had a major impact on how
Date::Manip was written so this practice was justified. That all
changed with the release of perl 5.10.

One of the aspects of Date::Manip that has received the most positive
response is the ability to parse almost every conceivable date format.
Unfortunately, as I've added formats, the parsing routine became more
and more complicated, and maintaining it was one of the least
enjoyable aspect in maintaining Date::Manip . In fact, for several
years I'd been extremely reluctant to add new formats due to the fact
that too often, adding a new format broke other formats.

As I was rewriting Date::Manip, I was looking for ways to improve the
parsing and to make maintaining it easier. Perl 5.10 provides the
feature "named capture buffers". Named capture buffers not only
improves the ease of maintaining the complex regular expressions used
by Date::Manip, it makes it dramatically easier to add additional
formats in a way that is much less likely to interfere with other
formats. The parsing in 6.00 is so much more robust, extensible, and
flexible, that it will make parser maintenance possible for many years
to come at a fraction of the effort and risk.

It was too much to turn down. Hopefully, since 5.10 has been out for
some time now, this will not prohibit too many people from using the
new version of Date::Manip. I realize that there are many people out
there using older versions of perl who do not have the option of
upgrading perl.  The decision to use 5.10 wasn't made lightly... but I
don't regret making it. I apologize to users who, as a result, cannot
use 6.00 . Hopefully in the future you'll be able to benefit from the
improvements in 6.00.

One complaint I've received is that this in some way makes Date::Manip
backwards incompatible, but this is not an accurate complaint. Version
6.xx DOES include some backwards incompatibilities (and these are
covered in the L<Date::Manip::Migration5to6> document), however in almost
all cases, these incompatibilities are with infrequently used
features, or workarounds are in place to allow deprecated features to
continue functioning for some period of time.

Though I have no data to confirm this, I suspect that 90% or more of
all scripts which were written with Date::Manip 5.xx will continue to
work unmodified with 6.xx (of course, you should still refer to the
migration document to see what features are deprecated or changed to
make sure that you don't need to modify your script so that it will
continue to work in the future). Even with scripts that need to be
changed, the changes should be trivial.

So, Date::Manip 6.xx is almost entirely backward compatible with 5.xx
(to the extent that you would expect any major version release to be
compatible with a previous major version).

The change is only in the requirements necessary to get Date::Manip
6.xx to run.

Obviously, it's not reasonable to say that Date::Manip should never be
allowed to switch minimum perl versions. At some point, you have to
let go of an old version if you want to make use of the features of
the newer version. The question is, did I jump to 5.10 too fast?

The negative ratings I see in the CPAN ratings complain that I no
longer support perl 5.6 and perl 5.8.

With respect to 5.6, perl 5.6 was released in March of 2000 (that's
before Windows XP which was released in 2001). Date::Manip 6.00 was
released at the end of 2009.  To be honest, I don't really feel much
sympathy for this complaint. Software that is 9 years old is ANCIENT.
People may choose to use it... but please don't complain when new
software comes out that doesn't support it.

The argument for perl 5.8 is much more compelling. Although 5.8 was
released well before Date::Manip 6.00 (July of 2002), there were no
major perl releases until 5.10 came out in December of 2007, so 5.8
was state-of-the art as little as 2 years prior to the release of
Date::Manip 6.xx.

I agree completely with the argument that abandoning 5.8 only 2 years
after it was the current version is too soon. For that reason, I
continued to support the Date::Manip 5.xx releases for several years.
As of December 2012 (5 years after the release of perl 5.10), the 5.xx
release is no longer supported (in that I will not patch it or provide
support for it's use).  However, it is still bundled into the Date::Manip
distribution so it can still be used.  I do not have any plans for
removing it, though I may do so at some point.

=item B<Too many modules>

One minor complaint is that there are too many files. One person
specifically objects to the fact that there are over 470 modules
covering non-minute offsets. This complaint is (IMO) silly.

Date::Manip supports ALL historical time zones, including those with
non-minute offsets, and so there will be information for those time
zones, even though they are not currently in use.

I could of course store all of the information in one big module, but
that means that you have to load all of that data every time you use
Date::Manip, and I find that to be a very poor solution. Instead,
storing the information in a per-time zone and per-offset manner
dramatically decreases the amount of data that has to be loaded.

While it is true that Date::Manip includes over 900 modules for all of
the time zone information, most implementations of time zone handling
also choose to break up the data into a large number of files.

My linux distribution (openSuSE 11.2 at the time of writing this) uses
the standard zoneinfo database, and at this point, there are over 1700
files included in /usr/share/zoneinfo (though it does appear that
there is some duplication of information). Current versions of RedHat
also use over 1700 files, so Date::Manip isn't treating the time zone
data in a new or unreasonable way.

=item B<Objects are large>

One complaint that was put on the CPAN ratings site was that the OO
interface is "a dud" due to the size of it's objects. The complaint is
that a L<Date::Manip::Date> object is 115K while it should (according to
the complaint) only require that you need to save the seconds from the
epoch, zone, and a couple other pieces of information, all of which
could probably be stored in 100 bytes or less.

This complaint is not accurate, and comes from a misunderstanding
of the objects used by Date::Manip.

Date::Manip is very configurable, and contains a great deal of
information which could theoretically be calculated on the fly, but
which would greatly reduce it's performance. Instead, in the interest
of improving performance, the data is cached, and since the data is
virtually all potentially object specific, it has to be somehow linked
to the object.

For example, Date::Manip allows you to parse dates in several
languages.  Each language has a large number of regular expressions
which are used to do the actual parsing. Instead of recreating these
regular expressions each time they are needed, they are created once
and stored in an object (specifically, a L<Date::Manip::Base> object).
The size of the L<Date::Manip::Base> object is almost 15K (due primarily
to the regular expressions used in parsing dates in the selected
language).

Similarly, a description of the time zones are stored in a second
object (a L<Date::Manip::TZ> object).  The size of the L<Date::Manip::TZ>
object starts at 100K. That may seem excessive, but you have to
remember that there are almost 500 time zones, and they have to be
indexed by name, alias, abbreviation, and offset.  In addition, critical
dates (dates where the offset from GMT change such as during a daylight
saving time change) along with information such as offsets, abbreviation,
etc., are all cached in order to improve performance.  By the time you
do this, it does take a fair bit of space.  It should also be noted
that the full description of each timezone is only stored in the
object when the timezone is actually used, so if you use a lot of
timezones, this object will grow slowly as new timezones are used.

The size of the actual L<Date::Manip::Date> object is a little over 300
bytes.  However, each includes a pointer to a L<Date::Manip::Base> and
a L<Date::Manip::TZ> object (and due to how the object was being looked
at in the complaint, they were reporting the size of all three objects,
NOT just the L<Date::Manip::Date> object).

Both the L<Date::Manip::Base> and L<Date::Manip::TZ> objects are reused by
any number of L<Date::Manip::Date> objects. They can almost be thought of
as global data, except that they are accessible in the standard OO
manner, and you are allowed to modify them on a per-object basis which
WILL mean that you have to store more data. If you work with multiple
configurations (see L<Date::Manip::Config>), you'll need multiple Base
and TZ objects. However, most of the time you will not need to do
this.

The actual L<Date::Manip::Date> object is a bit larger than suggested in
the complaint, but it should be noted that Date::Manip actually stores
the dates in a number of different formats (a string of the form
YYYYMMDDHH:MN:SS and a list [YYYY,MM,DD,HH,MN,SS] in the time zone it
was parsed in, the local time zone (if different) and GMT. By caching
this information as it is used, it has a huge impact on the
performance.

So, Date::Manip in typical usage consists of one 100K L<Date::Manip::TZ>
object, one 15K L<Date::Manip::Base> objects, and any number of small 300
byte L<Date::Manip::Date> objects.  L<Date::Manip::Delta> objects are even
smaller. L<Date::Manip::Recur> objects are also small, but they contain
any number of Date objects in them.

I am certainly open to suggestions as to how I can improve the OO
interface... but I don't believe it is a dud. While I'm not an expert
at OO programming, I believe that I followed pretty standard and
accepted procedures for accessing the data.

Please refer to the L<Date::Manip::Objects> document for more
information.

=item B<Date::Manip has an inconsistent interface>

I've gotten a few complaints that the interface to Date::Manip is
inconsistent... and I agree (at least when referring to the functional
interfaces).

Date::Manip was originally written in an unplanned way... as a need/want
came up, it was extended. That's not the way to write a major package
of course, but it wasn't expected to be a major package at the start.

As it became more and more widely used, I too wished for a more
consistent interface, but I did not want to break backward compatibility
for everyone using it.

When 6.xx was written, I spent a good deal of time trying to make a
very standard OO interface, so I do not believe that this complaint
can be applied to the OO interface (though I'm interested in
suggestions for improving it of course).

As far as the functional interface goes, I'll continue to support it
in a backward compatible (and therefore inconsistent) form. I'd
encourage the use of the OO interface whenever possible.

=back

=head1 BUGS AND QUESTIONS

If you find a bug in Date::Manip, please send it directly to me (see
the AUTHOR section below).  Alternately, you can submit it on CPAN. This
can be done at the following URL:

L<http://rt.cpan.org/Public/Dist/Display.html?Name=Date-Manip>

Please do not use other means to report bugs (such as Usenet newsgroups,
or forums for a specific OS or Linux distribution) as it is impossible
for me to keep up with all of them.

When filing a bug report, please include the following information:

=over 4

=item B<Date::Manip version>

Please include the version of Date::Manip you are using.  You can get
this by using the script:

   use Date::Manip;
   print DateManipVersion(1),"\n";

or

   use Date::Manip::Date;
   $obj = new Date::Manip::Date;
   print $obj->version(1),"\n";

=item B<Perl information>

Please include the output from "perl -V"

=back

If you have a problem using Date::Manip that perhaps isn't a bug
(can't figure out the syntax, etc.), you're in the right place.  Start
by reading the main Date::Manip documentation, and the other documents
that apply to whatever you are trying to do.  If this still doesn't
answer your question, mail me directly.

I would ask that you be reasonably familiar with the documentation
BEFORE you choose to do this. Date::Manip is a hobby, and I simply do
not have time to respond to hundreds of questions which are already
answered in this manual.

If you find any problems with the documentation (errors, typos, or items
that are not clear), please send them to me. I welcome any suggestions
that will allow me to improve the documentation.

=head1 KNOWN BUGS

None known.

=head1 SEE ALSO

L<Date::Manip>        - main module documentation

=head1 LICENSE

This script is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

=head1 AUTHOR

Sullivan Beck (sbeck@cpan.org)

=cut


text:
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: google/dataflow/v1beta3/metrics.proto

package com.google.dataflow.v1beta3;

/**
 *
 *
 *

 * Request to get information about a particular execution stage of a job.
 * Currently only tracked for Batch jobs.
 *

 *
 * Protobuf type {@code google.dataflow.v1beta3.GetStageExecutionDetailsRequest}
 */
public final class GetStageExecutionDetailsRequest extends com.google.protobuf.GeneratedMessageV3
    implements
    // @@protoc_insertion_point(message_implements:google.dataflow.v1beta3.GetStageExecutionDetailsRequest)
    GetStageExecutionDetailsRequestOrBuilder {
  private static final long serialVersionUID = 0L;
  // Use GetStageExecutionDetailsRequest.newBuilder() to construct.
  private GetStageExecutionDetailsRequest(
      com.google.protobuf.GeneratedMessageV3.Builder<?> builder) {
    super(builder);
  }

  private GetStageExecutionDetailsRequest() {
    projectId_ = "";
    jobId_ = "";
    location_ = "";
    stageId_ = "";
    pageToken_ = "";
  }

  @java.lang.Override
  @SuppressWarnings({"unused"})
  protected java.lang.Object newInstance(UnusedPrivateParameter unused) {
    return new GetStageExecutionDetailsRequest();
  }

  @java.lang.Override
  public final com.google.protobuf.UnknownFieldSet getUnknownFields() {
    return this.unknownFields;
  }

  public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
    return com.google.dataflow.v1beta3.MetricsProto
        .internal_static_google_dataflow_v1beta3_GetStageExecutionDetailsRequest_descriptor;
  }

  @java.lang.Override
  protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
      internalGetFieldAccessorTable() {
    return com.google.dataflow.v1beta3.MetricsProto
        .internal_static_google_dataflow_v1beta3_GetStageExecutionDetailsRequest_fieldAccessorTable
        .ensureFieldAccessorsInitialized(
            com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.class,
            com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.Builder.class);
  }

  public static final int PROJECT_ID_FIELD_NUMBER = 1;
  private volatile java.lang.Object projectId_;
  /**
   *
   *
   *

   * A project id.
   *

   *
   * string project_id = 1;
   *
   * @return The projectId.
   */
  @java.lang.Override
  public java.lang.String getProjectId() {
    java.lang.Object ref = projectId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      projectId_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * A project id.
   *

   *
   * string project_id = 1;
   *
   * @return The bytes for projectId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getProjectIdBytes() {
    java.lang.Object ref = projectId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      projectId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int JOB_ID_FIELD_NUMBER = 2;
  private volatile java.lang.Object jobId_;
  /**
   *
   *
   *

   * The job to get execution details for.
   *

   *
   * string job_id = 2;
   *
   * @return The jobId.
   */
  @java.lang.Override
  public java.lang.String getJobId() {
    java.lang.Object ref = jobId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      jobId_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * The job to get execution details for.
   *

   *
   * string job_id = 2;
   *
   * @return The bytes for jobId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getJobIdBytes() {
    java.lang.Object ref = jobId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      jobId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int LOCATION_FIELD_NUMBER = 3;
  private volatile java.lang.Object location_;
  /**
   *
   *
   *

   * The [regional endpoint]
   * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
   * contains the job specified by job_id.
   *

   *
   * string location = 3;
   *
   * @return The location.
   */
  @java.lang.Override
  public java.lang.String getLocation() {
    java.lang.Object ref = location_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      location_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * The [regional endpoint]
   * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
   * contains the job specified by job_id.
   *

   *
   * string location = 3;
   *
   * @return The bytes for location.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getLocationBytes() {
    java.lang.Object ref = location_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      location_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int STAGE_ID_FIELD_NUMBER = 4;
  private volatile java.lang.Object stageId_;
  /**
   *
   *
   *

   * The stage for which to fetch information.
   *

   *
   * string stage_id = 4;
   *
   * @return The stageId.
   */
  @java.lang.Override
  public java.lang.String getStageId() {
    java.lang.Object ref = stageId_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      stageId_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * The stage for which to fetch information.
   *

   *
   * string stage_id = 4;
   *
   * @return The bytes for stageId.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getStageIdBytes() {
    java.lang.Object ref = stageId_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      stageId_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int PAGE_SIZE_FIELD_NUMBER = 5;
  private int pageSize_;
  /**
   *
   *
   *

   * If specified, determines the maximum number of work items to
   * return.  If unspecified, the service may choose an appropriate
   * default, or may return an arbitrarily large number of results.
   *

   *
   * int32 page_size = 5;
   *
   * @return The pageSize.
   */
  @java.lang.Override
  public int getPageSize() {
    return pageSize_;
  }

  public static final int PAGE_TOKEN_FIELD_NUMBER = 6;
  private volatile java.lang.Object pageToken_;
  /**
   *
   *
   *

   * If supplied, this should be the value of next_page_token returned
   * by an earlier call. This will cause the next page of results to
   * be returned.
   *

   *
   * string page_token = 6;
   *
   * @return The pageToken.
   */
  @java.lang.Override
  public java.lang.String getPageToken() {
    java.lang.Object ref = pageToken_;
    if (ref instanceof java.lang.String) {
      return (java.lang.String) ref;
    } else {
      com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
      java.lang.String s = bs.toStringUtf8();
      pageToken_ = s;
      return s;
    }
  }
  /**
   *
   *
   *

   * If supplied, this should be the value of next_page_token returned
   * by an earlier call. This will cause the next page of results to
   * be returned.
   *

   *
   * string page_token = 6;
   *
   * @return The bytes for pageToken.
   */
  @java.lang.Override
  public com.google.protobuf.ByteString getPageTokenBytes() {
    java.lang.Object ref = pageToken_;
    if (ref instanceof java.lang.String) {
      com.google.protobuf.ByteString b =
          com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
      pageToken_ = b;
      return b;
    } else {
      return (com.google.protobuf.ByteString) ref;
    }
  }

  public static final int START_TIME_FIELD_NUMBER = 7;
  private com.google.protobuf.Timestamp startTime_;
  /**
   *
   *
   *

   * Lower time bound of work items to include, by start time.
   *

   *
   * .google.protobuf.Timestamp start_time = 7;
   *
   * @return Whether the startTime field is set.
   */
  @java.lang.Override
  public boolean hasStartTime() {
    return startTime_ != null;
  }
  /**
   *
   *
   *

   * Lower time bound of work items to include, by start time.
   *

   *
   * .google.protobuf.Timestamp start_time = 7;
   *
   * @return The startTime.
   */
  @java.lang.Override
  public com.google.protobuf.Timestamp getStartTime() {
    return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
  }
  /**
   *
   *
   *

   * Lower time bound of work items to include, by start time.
   *

   *
   * .google.protobuf.Timestamp start_time = 7;
   */
  @java.lang.Override
  public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
    return getStartTime();
  }

  public static final int END_TIME_FIELD_NUMBER = 8;
  private com.google.protobuf.Timestamp endTime_;
  /**
   *
   *
   *

   * Upper time bound of work items to include, by start time.
   *

   *
   * .google.protobuf.Timestamp end_time = 8;
   *
   * @return Whether the endTime field is set.
   */
  @java.lang.Override
  public boolean hasEndTime() {
    return endTime_ != null;
  }
  /**
   *
   *
   *

   * Upper time bound of work items to include, by start time.
   *

   *
   * .google.protobuf.Timestamp end_time = 8;
   *
   * @return The endTime.
   */
  @java.lang.Override
  public com.google.protobuf.Timestamp getEndTime() {
    return endTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : endTime_;
  }
  /**
   *
   *
   *

   * Upper time bound of work items to include, by start time.
   *

   *
   * .google.protobuf.Timestamp end_time = 8;
   */
  @java.lang.Override
  public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
    return getEndTime();
  }

  private byte memoizedIsInitialized = -1;

  @java.lang.Override
  public final boolean isInitialized() {
    byte isInitialized = memoizedIsInitialized;
    if (isInitialized == 1) return true;
    if (isInitialized == 0) return false;

    memoizedIsInitialized = 1;
    return true;
  }

  @java.lang.Override
  public void writeTo(com.google.protobuf.CodedOutputStream output) throws java.io.IOException {
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(projectId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 1, projectId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jobId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 2, jobId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(location_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 3, location_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stageId_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 4, stageId_);
    }
    if (pageSize_ != 0) {
      output.writeInt32(5, pageSize_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
      com.google.protobuf.GeneratedMessageV3.writeString(output, 6, pageToken_);
    }
    if (startTime_ != null) {
      output.writeMessage(7, getStartTime());
    }
    if (endTime_ != null) {
      output.writeMessage(8, getEndTime());
    }
    getUnknownFields().writeTo(output);
  }

  @java.lang.Override
  public int getSerializedSize() {
    int size = memoizedSize;
    if (size != -1) return size;

    size = 0;
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(projectId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(1, projectId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(jobId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(2, jobId_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(location_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(3, location_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(stageId_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(4, stageId_);
    }
    if (pageSize_ != 0) {
      size += com.google.protobuf.CodedOutputStream.computeInt32Size(5, pageSize_);
    }
    if (!com.google.protobuf.GeneratedMessageV3.isStringEmpty(pageToken_)) {
      size += com.google.protobuf.GeneratedMessageV3.computeStringSize(6, pageToken_);
    }
    if (startTime_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(7, getStartTime());
    }
    if (endTime_ != null) {
      size += com.google.protobuf.CodedOutputStream.computeMessageSize(8, getEndTime());
    }
    size += getUnknownFields().getSerializedSize();
    memoizedSize = size;
    return size;
  }

  @java.lang.Override
  public boolean equals(final java.lang.Object obj) {
    if (obj == this) {
      return true;
    }
    if (!(obj instanceof com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest)) {
      return super.equals(obj);
    }
    com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest other =
        (com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest) obj;

    if (!getProjectId().equals(other.getProjectId())) return false;
    if (!getJobId().equals(other.getJobId())) return false;
    if (!getLocation().equals(other.getLocation())) return false;
    if (!getStageId().equals(other.getStageId())) return false;
    if (getPageSize() != other.getPageSize()) return false;
    if (!getPageToken().equals(other.getPageToken())) return false;
    if (hasStartTime() != other.hasStartTime()) return false;
    if (hasStartTime()) {
      if (!getStartTime().equals(other.getStartTime())) return false;
    }
    if (hasEndTime() != other.hasEndTime()) return false;
    if (hasEndTime()) {
      if (!getEndTime().equals(other.getEndTime())) return false;
    }
    if (!getUnknownFields().equals(other.getUnknownFields())) return false;
    return true;
  }

  @java.lang.Override
  public int hashCode() {
    if (memoizedHashCode != 0) {
      return memoizedHashCode;
    }
    int hash = 41;
    hash = (19 * hash) + getDescriptor().hashCode();
    hash = (37 * hash) + PROJECT_ID_FIELD_NUMBER;
    hash = (53 * hash) + getProjectId().hashCode();
    hash = (37 * hash) + JOB_ID_FIELD_NUMBER;
    hash = (53 * hash) + getJobId().hashCode();
    hash = (37 * hash) + LOCATION_FIELD_NUMBER;
    hash = (53 * hash) + getLocation().hashCode();
    hash = (37 * hash) + STAGE_ID_FIELD_NUMBER;
    hash = (53 * hash) + getStageId().hashCode();
    hash = (37 * hash) + PAGE_SIZE_FIELD_NUMBER;
    hash = (53 * hash) + getPageSize();
    hash = (37 * hash) + PAGE_TOKEN_FIELD_NUMBER;
    hash = (53 * hash) + getPageToken().hashCode();
    if (hasStartTime()) {
      hash = (37 * hash) + START_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getStartTime().hashCode();
    }
    if (hasEndTime()) {
      hash = (37 * hash) + END_TIME_FIELD_NUMBER;
      hash = (53 * hash) + getEndTime().hashCode();
    }
    hash = (29 * hash) + getUnknownFields().hashCode();
    memoizedHashCode = hash;
    return hash;
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      java.nio.ByteBuffer data) throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      java.nio.ByteBuffer data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      com.google.protobuf.ByteString data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      com.google.protobuf.ByteString data,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(byte[] data)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      byte[] data, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws com.google.protobuf.InvalidProtocolBufferException {
    return PARSER.parseFrom(data, extensionRegistry);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseDelimitedFrom(
      java.io.InputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(PARSER, input);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseDelimitedFrom(
      java.io.InputStream input, com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseDelimitedWithIOException(
        PARSER, input, extensionRegistry);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      com.google.protobuf.CodedInputStream input) throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(PARSER, input);
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest parseFrom(
      com.google.protobuf.CodedInputStream input,
      com.google.protobuf.ExtensionRegistryLite extensionRegistry)
      throws java.io.IOException {
    return com.google.protobuf.GeneratedMessageV3.parseWithIOException(
        PARSER, input, extensionRegistry);
  }

  @java.lang.Override
  public Builder newBuilderForType() {
    return newBuilder();
  }

  public static Builder newBuilder() {
    return DEFAULT_INSTANCE.toBuilder();
  }

  public static Builder newBuilder(
      com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest prototype) {
    return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
  }

  @java.lang.Override
  public Builder toBuilder() {
    return this == DEFAULT_INSTANCE ? new Builder() : new Builder().mergeFrom(this);
  }

  @java.lang.Override
  protected Builder newBuilderForType(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
    Builder builder = new Builder(parent);
    return builder;
  }
  /**
   *
   *
   *

   * Request to get information about a particular execution stage of a job.
   * Currently only tracked for Batch jobs.
   *

   *
   * Protobuf type {@code google.dataflow.v1beta3.GetStageExecutionDetailsRequest}
   */
  public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder>
      implements
      // @@protoc_insertion_point(builder_implements:google.dataflow.v1beta3.GetStageExecutionDetailsRequest)
      com.google.dataflow.v1beta3.GetStageExecutionDetailsRequestOrBuilder {
    public static final com.google.protobuf.Descriptors.Descriptor getDescriptor() {
      return com.google.dataflow.v1beta3.MetricsProto
          .internal_static_google_dataflow_v1beta3_GetStageExecutionDetailsRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessageV3.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.dataflow.v1beta3.MetricsProto
          .internal_static_google_dataflow_v1beta3_GetStageExecutionDetailsRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.class,
              com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.Builder.class);
    }

    // Construct using com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.newBuilder()
    private Builder() {}

    private Builder(com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {
      super(parent);
    }

    @java.lang.Override
    public Builder clear() {
      super.clear();
      projectId_ = "";

      jobId_ = "";

      location_ = "";

      stageId_ = "";

      pageSize_ = 0;

      pageToken_ = "";

      if (startTimeBuilder_ == null) {
        startTime_ = null;
      } else {
        startTime_ = null;
        startTimeBuilder_ = null;
      }
      if (endTimeBuilder_ == null) {
        endTime_ = null;
      } else {
        endTime_ = null;
        endTimeBuilder_ = null;
      }
      return this;
    }

    @java.lang.Override
    public com.google.protobuf.Descriptors.Descriptor getDescriptorForType() {
      return com.google.dataflow.v1beta3.MetricsProto
          .internal_static_google_dataflow_v1beta3_GetStageExecutionDetailsRequest_descriptor;
    }

    @java.lang.Override
    public com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest getDefaultInstanceForType() {
      return com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.getDefaultInstance();
    }

    @java.lang.Override
    public com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest build() {
      com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest result = buildPartial();
      if (!result.isInitialized()) {
        throw newUninitializedMessageException(result);
      }
      return result;
    }

    @java.lang.Override
    public com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest buildPartial() {
      com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest result =
          new com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest(this);
      result.projectId_ = projectId_;
      result.jobId_ = jobId_;
      result.location_ = location_;
      result.stageId_ = stageId_;
      result.pageSize_ = pageSize_;
      result.pageToken_ = pageToken_;
      if (startTimeBuilder_ == null) {
        result.startTime_ = startTime_;
      } else {
        result.startTime_ = startTimeBuilder_.build();
      }
      if (endTimeBuilder_ == null) {
        result.endTime_ = endTime_;
      } else {
        result.endTime_ = endTimeBuilder_.build();
      }
      onBuilt();
      return result;
    }

    @java.lang.Override
    public Builder clone() {
      return super.clone();
    }

    @java.lang.Override
    public Builder setField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.setField(field, value);
    }

    @java.lang.Override
    public Builder clearField(com.google.protobuf.Descriptors.FieldDescriptor field) {
      return super.clearField(field);
    }

    @java.lang.Override
    public Builder clearOneof(com.google.protobuf.Descriptors.OneofDescriptor oneof) {
      return super.clearOneof(oneof);
    }

    @java.lang.Override
    public Builder setRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, int index, java.lang.Object value) {
      return super.setRepeatedField(field, index, value);
    }

    @java.lang.Override
    public Builder addRepeatedField(
        com.google.protobuf.Descriptors.FieldDescriptor field, java.lang.Object value) {
      return super.addRepeatedField(field, value);
    }

    @java.lang.Override
    public Builder mergeFrom(com.google.protobuf.Message other) {
      if (other instanceof com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest) {
        return mergeFrom((com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest) other);
      } else {
        super.mergeFrom(other);
        return this;
      }
    }

    public Builder mergeFrom(com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest other) {
      if (other == com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest.getDefaultInstance())
        return this;
      if (!other.getProjectId().isEmpty()) {
        projectId_ = other.projectId_;
        onChanged();
      }
      if (!other.getJobId().isEmpty()) {
        jobId_ = other.jobId_;
        onChanged();
      }
      if (!other.getLocation().isEmpty()) {
        location_ = other.location_;
        onChanged();
      }
      if (!other.getStageId().isEmpty()) {
        stageId_ = other.stageId_;
        onChanged();
      }
      if (other.getPageSize() != 0) {
        setPageSize(other.getPageSize());
      }
      if (!other.getPageToken().isEmpty()) {
        pageToken_ = other.pageToken_;
        onChanged();
      }
      if (other.hasStartTime()) {
        mergeStartTime(other.getStartTime());
      }
      if (other.hasEndTime()) {
        mergeEndTime(other.getEndTime());
      }
      this.mergeUnknownFields(other.getUnknownFields());
      onChanged();
      return this;
    }

    @java.lang.Override
    public final boolean isInitialized() {
      return true;
    }

    @java.lang.Override
    public Builder mergeFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      if (extensionRegistry == null) {
        throw new java.lang.NullPointerException();
      }
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            case 10:
              {
                projectId_ = input.readStringRequireUtf8();

                break;
              } // case 10
            case 18:
              {
                jobId_ = input.readStringRequireUtf8();

                break;
              } // case 18
            case 26:
              {
                location_ = input.readStringRequireUtf8();

                break;
              } // case 26
            case 34:
              {
                stageId_ = input.readStringRequireUtf8();

                break;
              } // case 34
            case 40:
              {
                pageSize_ = input.readInt32();

                break;
              } // case 40
            case 50:
              {
                pageToken_ = input.readStringRequireUtf8();

                break;
              } // case 50
            case 58:
              {
                input.readMessage(getStartTimeFieldBuilder().getBuilder(), extensionRegistry);

                break;
              } // case 58
            case 66:
              {
                input.readMessage(getEndTimeFieldBuilder().getBuilder(), extensionRegistry);

                break;
              } // case 66
            default:
              {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
          } // switch (tag)
        } // while (!done)
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.unwrapIOException();
      } finally {
        onChanged();
      } // finally
      return this;
    }

    private java.lang.Object projectId_ = "";
    /**
     *
     *
     *

     * A project id.
     *

     *
     * string project_id = 1;
     *
     * @return The projectId.
     */
    public java.lang.String getProjectId() {
      java.lang.Object ref = projectId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        projectId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * A project id.
     *

     *
     * string project_id = 1;
     *
     * @return The bytes for projectId.
     */
    public com.google.protobuf.ByteString getProjectIdBytes() {
      java.lang.Object ref = projectId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        projectId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * A project id.
     *

     *
     * string project_id = 1;
     *
     * @param value The projectId to set.
     * @return This builder for chaining.
     */
    public Builder setProjectId(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      projectId_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * A project id.
     *

     *
     * string project_id = 1;
     *
     * @return This builder for chaining.
     */
    public Builder clearProjectId() {

      projectId_ = getDefaultInstance().getProjectId();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * A project id.
     *

     *
     * string project_id = 1;
     *
     * @param value The bytes for projectId to set.
     * @return This builder for chaining.
     */
    public Builder setProjectIdBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      projectId_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object jobId_ = "";
    /**
     *
     *
     *

     * The job to get execution details for.
     *

     *
     * string job_id = 2;
     *
     * @return The jobId.
     */
    public java.lang.String getJobId() {
      java.lang.Object ref = jobId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        jobId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * The job to get execution details for.
     *

     *
     * string job_id = 2;
     *
     * @return The bytes for jobId.
     */
    public com.google.protobuf.ByteString getJobIdBytes() {
      java.lang.Object ref = jobId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        jobId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * The job to get execution details for.
     *

     *
     * string job_id = 2;
     *
     * @param value The jobId to set.
     * @return This builder for chaining.
     */
    public Builder setJobId(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      jobId_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * The job to get execution details for.
     *

     *
     * string job_id = 2;
     *
     * @return This builder for chaining.
     */
    public Builder clearJobId() {

      jobId_ = getDefaultInstance().getJobId();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * The job to get execution details for.
     *

     *
     * string job_id = 2;
     *
     * @param value The bytes for jobId to set.
     * @return This builder for chaining.
     */
    public Builder setJobIdBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      jobId_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object location_ = "";
    /**
     *
     *
     *

     * The [regional endpoint]
     * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
     * contains the job specified by job_id.
     *

     *
     * string location = 3;
     *
     * @return The location.
     */
    public java.lang.String getLocation() {
      java.lang.Object ref = location_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        location_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * The [regional endpoint]
     * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
     * contains the job specified by job_id.
     *

     *
     * string location = 3;
     *
     * @return The bytes for location.
     */
    public com.google.protobuf.ByteString getLocationBytes() {
      java.lang.Object ref = location_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        location_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * The [regional endpoint]
     * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
     * contains the job specified by job_id.
     *

     *
     * string location = 3;
     *
     * @param value The location to set.
     * @return This builder for chaining.
     */
    public Builder setLocation(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      location_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * The [regional endpoint]
     * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
     * contains the job specified by job_id.
     *

     *
     * string location = 3;
     *
     * @return This builder for chaining.
     */
    public Builder clearLocation() {

      location_ = getDefaultInstance().getLocation();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * The [regional endpoint]
     * (https://cloud.google.com/dataflow/docs/concepts/regional-endpoints) that
     * contains the job specified by job_id.
     *

     *
     * string location = 3;
     *
     * @param value The bytes for location to set.
     * @return This builder for chaining.
     */
    public Builder setLocationBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      location_ = value;
      onChanged();
      return this;
    }

    private java.lang.Object stageId_ = "";
    /**
     *
     *
     *

     * The stage for which to fetch information.
     *

     *
     * string stage_id = 4;
     *
     * @return The stageId.
     */
    public java.lang.String getStageId() {
      java.lang.Object ref = stageId_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        stageId_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * The stage for which to fetch information.
     *

     *
     * string stage_id = 4;
     *
     * @return The bytes for stageId.
     */
    public com.google.protobuf.ByteString getStageIdBytes() {
      java.lang.Object ref = stageId_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        stageId_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * The stage for which to fetch information.
     *

     *
     * string stage_id = 4;
     *
     * @param value The stageId to set.
     * @return This builder for chaining.
     */
    public Builder setStageId(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      stageId_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * The stage for which to fetch information.
     *

     *
     * string stage_id = 4;
     *
     * @return This builder for chaining.
     */
    public Builder clearStageId() {

      stageId_ = getDefaultInstance().getStageId();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * The stage for which to fetch information.
     *

     *
     * string stage_id = 4;
     *
     * @param value The bytes for stageId to set.
     * @return This builder for chaining.
     */
    public Builder setStageIdBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      stageId_ = value;
      onChanged();
      return this;
    }

    private int pageSize_;
    /**
     *
     *
     *

     * If specified, determines the maximum number of work items to
     * return.  If unspecified, the service may choose an appropriate
     * default, or may return an arbitrarily large number of results.
     *

     *
     * int32 page_size = 5;
     *
     * @return The pageSize.
     */
    @java.lang.Override
    public int getPageSize() {
      return pageSize_;
    }
    /**
     *
     *
     *

     * If specified, determines the maximum number of work items to
     * return.  If unspecified, the service may choose an appropriate
     * default, or may return an arbitrarily large number of results.
     *

     *
     * int32 page_size = 5;
     *
     * @param value The pageSize to set.
     * @return This builder for chaining.
     */
    public Builder setPageSize(int value) {

      pageSize_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * If specified, determines the maximum number of work items to
     * return.  If unspecified, the service may choose an appropriate
     * default, or may return an arbitrarily large number of results.
     *

     *
     * int32 page_size = 5;
     *
     * @return This builder for chaining.
     */
    public Builder clearPageSize() {

      pageSize_ = 0;
      onChanged();
      return this;
    }

    private java.lang.Object pageToken_ = "";
    /**
     *
     *
     *

     * If supplied, this should be the value of next_page_token returned
     * by an earlier call. This will cause the next page of results to
     * be returned.
     *

     *
     * string page_token = 6;
     *
     * @return The pageToken.
     */
    public java.lang.String getPageToken() {
      java.lang.Object ref = pageToken_;
      if (!(ref instanceof java.lang.String)) {
        com.google.protobuf.ByteString bs = (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        pageToken_ = s;
        return s;
      } else {
        return (java.lang.String) ref;
      }
    }
    /**
     *
     *
     *

     * If supplied, this should be the value of next_page_token returned
     * by an earlier call. This will cause the next page of results to
     * be returned.
     *

     *
     * string page_token = 6;
     *
     * @return The bytes for pageToken.
     */
    public com.google.protobuf.ByteString getPageTokenBytes() {
      java.lang.Object ref = pageToken_;
      if (ref instanceof String) {
        com.google.protobuf.ByteString b =
            com.google.protobuf.ByteString.copyFromUtf8((java.lang.String) ref);
        pageToken_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }
    /**
     *
     *
     *

     * If supplied, this should be the value of next_page_token returned
     * by an earlier call. This will cause the next page of results to
     * be returned.
     *

     *
     * string page_token = 6;
     *
     * @param value The pageToken to set.
     * @return This builder for chaining.
     */
    public Builder setPageToken(java.lang.String value) {
      if (value == null) {
        throw new NullPointerException();
      }

      pageToken_ = value;
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * If supplied, this should be the value of next_page_token returned
     * by an earlier call. This will cause the next page of results to
     * be returned.
     *

     *
     * string page_token = 6;
     *
     * @return This builder for chaining.
     */
    public Builder clearPageToken() {

      pageToken_ = getDefaultInstance().getPageToken();
      onChanged();
      return this;
    }
    /**
     *
     *
     *

     * If supplied, this should be the value of next_page_token returned
     * by an earlier call. This will cause the next page of results to
     * be returned.
     *

     *
     * string page_token = 6;
     *
     * @param value The bytes for pageToken to set.
     * @return This builder for chaining.
     */
    public Builder setPageTokenBytes(com.google.protobuf.ByteString value) {
      if (value == null) {
        throw new NullPointerException();
      }
      checkByteStringIsUtf8(value);

      pageToken_ = value;
      onChanged();
      return this;
    }

    private com.google.protobuf.Timestamp startTime_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        startTimeBuilder_;
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     *
     * @return Whether the startTime field is set.
     */
    public boolean hasStartTime() {
      return startTimeBuilder_ != null || startTime_ != null;
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     *
     * @return The startTime.
     */
    public com.google.protobuf.Timestamp getStartTime() {
      if (startTimeBuilder_ == null) {
        return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
      } else {
        return startTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    public Builder setStartTime(com.google.protobuf.Timestamp value) {
      if (startTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        startTime_ = value;
        onChanged();
      } else {
        startTimeBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    public Builder setStartTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (startTimeBuilder_ == null) {
        startTime_ = builderForValue.build();
        onChanged();
      } else {
        startTimeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    public Builder mergeStartTime(com.google.protobuf.Timestamp value) {
      if (startTimeBuilder_ == null) {
        if (startTime_ != null) {
          startTime_ =
              com.google.protobuf.Timestamp.newBuilder(startTime_).mergeFrom(value).buildPartial();
        } else {
          startTime_ = value;
        }
        onChanged();
      } else {
        startTimeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    public Builder clearStartTime() {
      if (startTimeBuilder_ == null) {
        startTime_ = null;
        onChanged();
      } else {
        startTime_ = null;
        startTimeBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    public com.google.protobuf.Timestamp.Builder getStartTimeBuilder() {

      onChanged();
      return getStartTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    public com.google.protobuf.TimestampOrBuilder getStartTimeOrBuilder() {
      if (startTimeBuilder_ != null) {
        return startTimeBuilder_.getMessageOrBuilder();
      } else {
        return startTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : startTime_;
      }
    }
    /**
     *
     *
     *

     * Lower time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp start_time = 7;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getStartTimeFieldBuilder() {
      if (startTimeBuilder_ == null) {
        startTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getStartTime(), getParentForChildren(), isClean());
        startTime_ = null;
      }
      return startTimeBuilder_;
    }

    private com.google.protobuf.Timestamp endTime_;
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        endTimeBuilder_;
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     *
     * @return Whether the endTime field is set.
     */
    public boolean hasEndTime() {
      return endTimeBuilder_ != null || endTime_ != null;
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     *
     * @return The endTime.
     */
    public com.google.protobuf.Timestamp getEndTime() {
      if (endTimeBuilder_ == null) {
        return endTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : endTime_;
      } else {
        return endTimeBuilder_.getMessage();
      }
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    public Builder setEndTime(com.google.protobuf.Timestamp value) {
      if (endTimeBuilder_ == null) {
        if (value == null) {
          throw new NullPointerException();
        }
        endTime_ = value;
        onChanged();
      } else {
        endTimeBuilder_.setMessage(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    public Builder setEndTime(com.google.protobuf.Timestamp.Builder builderForValue) {
      if (endTimeBuilder_ == null) {
        endTime_ = builderForValue.build();
        onChanged();
      } else {
        endTimeBuilder_.setMessage(builderForValue.build());
      }

      return this;
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    public Builder mergeEndTime(com.google.protobuf.Timestamp value) {
      if (endTimeBuilder_ == null) {
        if (endTime_ != null) {
          endTime_ =
              com.google.protobuf.Timestamp.newBuilder(endTime_).mergeFrom(value).buildPartial();
        } else {
          endTime_ = value;
        }
        onChanged();
      } else {
        endTimeBuilder_.mergeFrom(value);
      }

      return this;
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    public Builder clearEndTime() {
      if (endTimeBuilder_ == null) {
        endTime_ = null;
        onChanged();
      } else {
        endTime_ = null;
        endTimeBuilder_ = null;
      }

      return this;
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    public com.google.protobuf.Timestamp.Builder getEndTimeBuilder() {

      onChanged();
      return getEndTimeFieldBuilder().getBuilder();
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
      if (endTimeBuilder_ != null) {
        return endTimeBuilder_.getMessageOrBuilder();
      } else {
        return endTime_ == null ? com.google.protobuf.Timestamp.getDefaultInstance() : endTime_;
      }
    }
    /**
     *
     *
     *

     * Upper time bound of work items to include, by start time.
     *

     *
     * .google.protobuf.Timestamp end_time = 8;
     */
    private com.google.protobuf.SingleFieldBuilderV3<
            com.google.protobuf.Timestamp,
            com.google.protobuf.Timestamp.Builder,
            com.google.protobuf.TimestampOrBuilder>
        getEndTimeFieldBuilder() {
      if (endTimeBuilder_ == null) {
        endTimeBuilder_ =
            new com.google.protobuf.SingleFieldBuilderV3<
                com.google.protobuf.Timestamp,
                com.google.protobuf.Timestamp.Builder,
                com.google.protobuf.TimestampOrBuilder>(
                getEndTime(), getParentForChildren(), isClean());
        endTime_ = null;
      }
      return endTimeBuilder_;
    }

    @java.lang.Override
    public final Builder setUnknownFields(final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.setUnknownFields(unknownFields);
    }

    @java.lang.Override
    public final Builder mergeUnknownFields(
        final com.google.protobuf.UnknownFieldSet unknownFields) {
      return super.mergeUnknownFields(unknownFields);
    }

    // @@protoc_insertion_point(builder_scope:google.dataflow.v1beta3.GetStageExecutionDetailsRequest)
  }

  // @@protoc_insertion_point(class_scope:google.dataflow.v1beta3.GetStageExecutionDetailsRequest)
  private static final com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest DEFAULT_INSTANCE;

  static {
    DEFAULT_INSTANCE = new com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest();
  }

  public static com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest getDefaultInstance() {
    return DEFAULT_INSTANCE;
  }

  private static final com.google.protobuf.Parser<GetStageExecutionDetailsRequest> PARSER =
      new com.google.protobuf.AbstractParser<GetStageExecutionDetailsRequest>() {
        @java.lang.Override
        public GetStageExecutionDetailsRequest parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };

  public static com.google.protobuf.Parser<GetStageExecutionDetailsRequest> parser() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.protobuf.Parser<GetStageExecutionDetailsRequest> getParserForType() {
    return PARSER;
  }

  @java.lang.Override
  public com.google.dataflow.v1beta3.GetStageExecutionDetailsRequest getDefaultInstanceForType() {
    return DEFAULT_INSTANCE;
  }
}

redpajama_set_name: RedPajamaGithub


text:
Provided types map file "/typesMap.json" doesn't exist
Search path: /user/username/projects/myproject/src/somefolder
For info: /user/username/projects/myproject/src/somefolder/srcfile.ts :: Config file name: /user/username/projects/myproject/src/tsconfig.json
Creating configuration project /user/username/projects/myproject/src/tsconfig.json
FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/tsconfig.json 2000 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Config file
Config: /user/username/projects/myproject/src/tsconfig.json : {
 "rootNames": [
  "/user/username/projects/myproject/src/somefolder/module1.ts",
  "/user/username/projects/myproject/src/somefolder/srcfile.ts",
  "/user/username/projects/myproject/src/typings/electron.d.ts"
 ],
 "options": {
  "module": 2,
  "moduleResolution": 1,
  "target": 1,
  "outDir": "/user/username/projects/myproject/out",
  "baseUrl": "/user/username/projects/myproject/src",
  "typeRoots": [
   "/user/username/projects/myproject/src/typings"
  ],
  "configFilePath": "/user/username/projects/myproject/src/tsconfig.json"
 }
}
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/src/tsconfig.json WatchType: Wild card directory
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src 1 undefined Config: /user/username/projects/myproject/src/tsconfig.json WatchType: Wild card directory
Plugins were requested but not running in environment that supports 'require'. Nothing will be loaded
FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/somefolder/module1.ts 500 undefined WatchType: Closed Script info
FileWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings/electron.d.ts 500 undefined WatchType: Closed Script info
Starting updateGraphWorker: Project: /user/username/projects/myproject/src/tsconfig.json
FileWatcher:: Added:: WatchInfo: /a/lib/lib.d.ts 500 undefined WatchType: Closed Script info
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/somefolder 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/node_modules 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/node_modules 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/node_modules 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src 0 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Failed Lookup Locations
DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Type roots
Elapsed:: *ms DirectoryWatcher:: Added:: WatchInfo: /user/username/projects/myproject/src/typings 1 undefined Project: /user/username/projects/myproject/src/tsconfig.json WatchType: Type roots
Finishing updateGraphWorker: Project: /user/username/projects/myproject/src/tsconfig.json Version: 1 structureChanged: true structureIsReused:: Not Elapsed:: *ms
Project '/user/username/projects/myproject/src/tsconfig.json' (Configured)
	Files (4)
	/a/lib/lib.d.ts
	/user/username/projects/myproject/src/somefolder/module1.ts
	/user/username/projects/myproject/src/somefolder/srcfile.ts
	/user/username/projects/myproject/src/typings/electron.d.ts

	../../../../../a/lib/lib.d.ts
	  Default library for target 'es5'
	somefolder/module1.ts
	  Matched by default include pattern '**/*'
	  Imported via "somefolder/module1" from file 'somefolder/srcfile.ts'
	somefolder/srcfile.ts
	  Matched by default include pattern '**/*'
	typings/electron.d.ts
	  Matched by default include pattern '**/*'

-----------------------------------------------
Project '/user/username/projects/myproject/src/tsconfig.json' (Configured)
	Files (4)

-----------------------------------------------
Open files:
	FileName: /user/username/projects/myproject/src/somefolder/srcfile.ts ProjectRootPath: /user/username/projects/myproject
		Projects: /user/username/projects/myproject/src/tsconfig.json


text:
package com.medallia.word2vec.util;

import java.util.concurrent.Callable;

/** Utility base implementation of Callable with a Void return type. */
public abstract class CallableVoid implements Callable<Void> {

	@Override public final Void call() throws Exception {
		run();
		return null;
	}

	/** Do the actual work here instead of using {@link #call()} */
	protected abstract void run() throws Exception;

}


text:
package org.apache.accumulo.server.conf;

import static java.nio.charset.StandardCharsets.UTF_8;
import static org.easymock.EasyMock.anyObject;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.easymock.EasyMock.verify;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.function.Predicate;

import org.apache.accumulo.core.Constants;
import org.apache.accumulo.core.client.Instance;
import org.apache.accumulo.core.conf.ConfigurationObserver;
import org.apache.accumulo.core.conf.Property;
import org.apache.accumulo.core.zookeeper.ZooUtil;
import org.apache.accumulo.fate.zookeeper.ZooCache;
import org.apache.accumulo.fate.zookeeper.ZooCacheFactory;
import org.junit.Before;
import org.junit.Test;

public class TableConfigurationTest {
  private static final String TID = "table";
  private static final String ZOOKEEPERS = "localhost";
  private static final int ZK_SESSION_TIMEOUT = 120000;

  private String iid;
  private Instance instance;
  private NamespaceConfiguration parent;
  private ZooCacheFactory zcf;
  private ZooCache zc;
  private TableConfiguration c;

  @Before
  public void setUp() {
    iid = UUID.randomUUID().toString();
    instance = createMock(Instance.class);
    expect(instance.getInstanceID()).andReturn(iid).anyTimes();
    expect(instance.getZooKeepers()).andReturn(ZOOKEEPERS);
    expect(instance.getZooKeepersSessionTimeOut()).andReturn(ZK_SESSION_TIMEOUT);
    replay(instance);

    parent = createMock(NamespaceConfiguration.class);
    c = new TableConfiguration(instance, TID, parent);
    zcf = createMock(ZooCacheFactory.class);
    c.setZooCacheFactory(zcf);

    zc = createMock(ZooCache.class);
    expect(zcf.getZooCache(eq(ZOOKEEPERS), eq(ZK_SESSION_TIMEOUT), anyObject(TableConfWatcher.class))).andReturn(zc);
    replay(zcf);
  }

  @Test
  public void testGetters() {
    assertEquals(TID, c.getTableId());
    assertEquals(parent, c.getParentConfiguration());
  }

  @Test
  public void testGet_InZK() {
    Property p = Property.INSTANCE_SECRET;
    expect(zc.get(ZooUtil.getRoot(iid) + Constants.ZTABLES + "/" + TID + Constants.ZTABLE_CONF + "/" + p.getKey())).andReturn("sekrit".getBytes(UTF_8));
    replay(zc);
    assertEquals("sekrit", c.get(Property.INSTANCE_SECRET));
  }

  @Test
  public void testGet_InParent() {
    Property p = Property.INSTANCE_SECRET;
    expect(zc.get(ZooUtil.getRoot(iid) + Constants.ZTABLES + "/" + TID + Constants.ZTABLE_CONF + "/" + p.getKey())).andReturn(null);
    replay(zc);
    expect(parent.get(p)).andReturn("sekrit");
    replay(parent);
    assertEquals("sekrit", c.get(Property.INSTANCE_SECRET));
  }

  @Test
  public void testGetProperties() {
    Predicate<String> all = x -> true;
    Map<String,String> props = new java.util.HashMap<String,String>();
    parent.getProperties(props, all);
    replay(parent);
    List<String> children = new java.util.ArrayList<String>();
    children.add("foo");
    children.add("ding");
    expect(zc.getChildren(ZooUtil.getRoot(iid) + Constants.ZTABLES + "/" + TID + Constants.ZTABLE_CONF)).andReturn(children);
    expect(zc.get(ZooUtil.getRoot(iid) + Constants.ZTABLES + "/" + TID + Constants.ZTABLE_CONF + "/" + "foo")).andReturn("bar".getBytes(UTF_8));
    expect(zc.get(ZooUtil.getRoot(iid) + Constants.ZTABLES + "/" + TID + Constants.ZTABLE_CONF + "/" + "ding")).andReturn("dong".getBytes(UTF_8));
    replay(zc);
    c.getProperties(props, all);
    assertEquals(2, props.size());
    assertEquals("bar", props.get("foo"));
    assertEquals("dong", props.get("ding"));
  }

  @Test
  public void testObserver() {
    ConfigurationObserver o = createMock(ConfigurationObserver.class);
    c.addObserver(o);
    Collection<ConfigurationObserver> os = c.getObservers();
    assertEquals(1, os.size());
    assertTrue(os.contains(o));
    c.removeObserver(o);
    os = c.getObservers();
    assertEquals(0, os.size());
  }

  @Test
  public void testInvalidateCache() {
    // need to do a get so the accessor is created
    Property p = Property.INSTANCE_SECRET;
    expect(zc.get(ZooUtil.getRoot(iid) + Constants.ZTABLES + "/" + TID + Constants.ZTABLE_CONF + "/" + p.getKey())).andReturn("sekrit".getBytes(UTF_8));
    zc.clear();
    replay(zc);
    c.get(Property.INSTANCE_SECRET);
    c.invalidateCache();
    verify(zc);
  }
}


text:
include Configfile

# This will configure a 32-bit architecture on top of a 64-bit linux machine
config-arch:
	sudo dpkg --add-architecture i386
	sudo apt-get update
	sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386

# Gets the ASoC Client Tool and configures it
asoc-tool: config-arch
	$(eval DIR := $(shell pwd))
	curl -o $(HOME)/client.zip $(APPSCAN_TOOL)
	mkdir $(HOME)/client ; mkdir $(HOME)/tool
	unzip -qq $(HOME)/client.zip -d $(HOME)/client
	cd $(HOME)/client ; ls | xargs -I {} sh -c "cp -r {}/* $(HOME)/tool"
	rm -rf client

# Clone repo
clone-repo:
	git clone $(GIT_REPO)

# Generates the irx file for icp-cert-manager
generate-irx:
	cd $(TRAVIS_BUILD_DIR)
	$(HOME)/tool/bin/appscan.sh prepare -oso

# Login to the AppScan API
api-login:
	curl -o $(HOME)/token.json -X POST $(CONTENT_HEADER_JSON) $(ACCEPT_HEADER_JSON) -d '{"KeyId":"$(ASOC_APIKEY)", "KeySecret":"$(ASOC_SECRET)"}' $(LOGIN_URL)

# Uploads the irx file to the AppScan API
upload-file: api-login
	$(eval TOKE := $(shell python getJson.py $(HOME)/token.json "Token"))
	$(eval AUTH := --header 'Authorization: Bearer $(TOKE)')
	$(eval FILE := fileToUpload=@$(shell pwd)/$(notdir $(shell find $(pwd) -maxdepth 2 -name '*.irx' -print)))

	curl -o $(HOME)/file.json -X POST --header 'Content-Type: multipart/form-data' $(ACCEPT_HEADER_JSON) $(AUTH) -F $(FILE) $(UPLOAD_URL)

# Checks to see if Cert-Manager-Application already exists.
# TODO: Error with the url, will come back to this later.
get-app:
	$(eval TOKE := $(shell python getJson.py $(HOME)/token.json "Token"))
	$(eval AUTH := --header 'Authorization: Bearer $(TOKE)')
	$(eval URL := $(GET_APP_URL)'$(APP_NAME)''')

	curl -X GET $(ACCEPT_HEADER_JSON) $(AUTH) $(URL)

# Assume we have an existing application, then we'll simply run the static scan
run-scan:
	$(eval TOKE := $(shell python getJson.py $(HOME)/token.json "Token"))
	$(eval AUTH := --header 'Authorization: Bearer $(TOKE)')
	$(eval FILE_ID := "$(shell python getJson.py $(HOME)/file.json "FileId")")
	$(eval APP_ID := "$(shell python getJson.py app.json "Id")")

	curl -X POST $(CONTENT_HEADER_JSON) $(ACCEPT_HEADER_JSON) $(AUTH) -d '{"ARSAFileId": $(FILE_ID), "ApplicationFileId": $(FILE_ID), "ScanName": "$(TRAVIS_TAG):$(TRAVIS_JOB_NUMBER):$(TRAVIS_COMMIT)", "EnableMailNotification": false, "Locale": "en-US", "AppId": $(APP_ID), "Execute": true, "Personal": false}' $(STATIC_SCAN_URL)

get-asset-group:
	$(eval TOKE := $(shell python getJson.py $(HOME)/token.json "Token"))
	$(eval AUTH := --header 'Authorization: Bearer $(TOKE)')

	curl -o asset.json -X GET $(ACCEPT_HEADER_JSON) $(AUTH) $(GET_ASSET_GROUP_URL)

# Create the application only if the application doesn't already exist.
create-app: get-asset-group
	$(eval ASSET_GROUP_ID := "$(shell python getJson.py asset.json "Id")")
	$(eval TOKE := $(shell python getJson.py $(HOME)/token.json "Token"))
	$(eval AUTH := --header 'Authorization: Bearer $(TOKE)')

	curl -o app.json -X POST $(CONTENT_HEADER_JSON) $(ACCEPT_HEADER_JSON) $(AUTH) -d '{"Name": $(APP_NAME), "AssetGroupId": $(ASSET_GROUP_ID), "BusinessImpact": "Unspecified"}' $(CREATE_APP_URL)


text:
import sys
import json

# PYTHON BOOLEAN FAILURE

print(False)
sys.exit(0)