org.smartdeveloperhub.jenkins.ResponseBodyBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ci-jenkins-api Show documentation
Show all versions of ci-jenkins-api Show documentation
The API of the Jenkins integration for the Continuous Integration Harvester of the Smart Developer Hub project
The newest version!
/**
* #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
* This file is part of the Smart Developer Hub Project:
* http://www.smartdeveloperhub.org/
*
* Center for Open Middleware
* http://www.centeropenmiddleware.com/
* #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
* Copyright (C) 2015-2016 Center for Open Middleware.
* #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
* 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
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
* Artifact : org.smartdeveloperhub.harvesters.ci.jenkins:ci-jenkins-api:0.3.0
* Bundle : ci-jenkins-api-0.3.0.jar
* #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=#
*/
package org.smartdeveloperhub.jenkins;
import static com.google.common.base.Preconditions.*;
import com.google.common.base.MoreObjects;
import com.google.common.base.Objects;
public final class ResponseBodyBuilder {
private static final class ImmutableResponseBody implements ResponseBody {
private final String content;
private final String contentType;
private final String encoding;
private final Digest digest;
private ImmutableResponseBody(String content, String contentType, String encoding, Digest digest) {
this.contentType = contentType;
this.encoding = encoding;
this.digest = digest;
this.content = content;
}
@Override
public Digest digest() {
return this.digest;
}
@Override
public String contentType() {
return this.contentType;
}
@Override
public String encoding() {
return this.encoding;
}
@Override
public String content() {
return this.content;
}
@Override
public int hashCode() {
return this.digest.hashCode();
}
@Override
public boolean equals(Object obj) {
boolean result = false;
if(obj instanceof ResponseBody) {
ResponseBody that=(ResponseBody)obj;
result=Objects.equal(this.digest,that.digest());
}
return result;
}
@Override
public String toString() {
return
MoreObjects.
toStringHelper(getClass()).
add("digest",this.digest).
add("contentType",this.contentType).
add("encoding",this.encoding).
add("content",this.content).
toString();
}
}
private String content;
private String contentType;
private String encoding;
private Digest tmpDigest;
public ResponseBodyBuilder withContent(String content) {
this.content=content;
return this;
}
public ResponseBodyBuilder withContentType(String contentType) {
this.contentType=contentType;
return this;
}
public ResponseBodyBuilder withEncoding(String encoding) {
this.encoding=encoding;
return this;
}
public ResponseBodyBuilder withDigest(Digest digest) {
this.tmpDigest = digest;
return this;
}
public ResponseBody build() {
checkNotNull(this.content,"Response body content cannot be null");
checkNotNull(this.contentType,"Response body content type cannot be null");
checkNotNull(this.encoding,"Response body encoding cannot be null");
Digest digest=this.tmpDigest;
if(digest==null) {
digest=DigestService.digestContents(this.content);
}
return new ImmutableResponseBody(this.content,this.contentType,this.encoding,digest);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy