當前位置: 首頁>>代碼示例>>Java>>正文


Java Resource類代碼示例

本文整理匯總了Java中org.springframework.hateoas.Resource的典型用法代碼示例。如果您正苦於以下問題:Java Resource類的具體用法?Java Resource怎麽用?Java Resource使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


Resource類屬於org.springframework.hateoas包,在下文中一共展示了Resource類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: events

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@GetMapping("events")
HttpEntity<Resources<?>> events(PagedResourcesAssembler<AbstractEvent<?>> assembler,
		@SortDefault("publicationDate") Pageable pageable,
		@RequestParam(required = false) @DateTimeFormat(iso = ISO.DATE_TIME) LocalDateTime since,
		@RequestParam(required = false) String type) {

	QAbstractEvent $ = QAbstractEvent.abstractEvent;

	BooleanBuilder builder = new BooleanBuilder();

	// Apply date
	Optional.ofNullable(since).ifPresent(it -> builder.and($.publicationDate.after(it)));

	// Apply type
	Optional.ofNullable(type) //
			.flatMap(events::findEventTypeByName) //
			.ifPresent(it -> builder.and($.instanceOf(it)));

	Page<AbstractEvent<?>> result = events.findAll(builder, pageable);

	PagedResources<Resource<AbstractEvent<?>>> resource = assembler.toResource(result, event -> toResource(event));
	resource
			.add(links.linkTo(methodOn(EventController.class).events(assembler, pageable, since, type)).withRel("events"));

	return ResponseEntity.ok(resource);
}
 
開發者ID:olivergierke,項目名稱:sos,代碼行數:27,代碼來源:EventController.java

示例2: updateEmployee

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@PutMapping("/employees/{id}")
ResponseEntity<?> updateEmployee(@RequestBody Employee employee, @PathVariable long id) {

	Employee employeeToUpdate = employee;
	employeeToUpdate.setId(id);

	Employee updatedEmployee = repository.save(employeeToUpdate);

	return new Resource<>(updatedEmployee,
		linkTo(methodOn(EmployeeController.class).findOne(updatedEmployee.getId())).withSelfRel()
			.andAffordance(afford(methodOn(EmployeeController.class).updateEmployee(null, updatedEmployee.getId())))
			.andAffordance(afford(methodOn(EmployeeController.class).deleteEmployee(updatedEmployee.getId()))),
		linkTo(methodOn(EmployeeController.class).findAll()).withRel("employees")
	).getId()
		.map(Link::getHref)
		.map(href -> {
			try {
				return new URI(href);
			} catch (URISyntaxException e) {
				throw new RuntimeException(e);
			}
		})
		.map(uri -> ResponseEntity.noContent().location(uri).build())
		.orElse(ResponseEntity.badRequest().body("Unable to update " + employeeToUpdate));
}
 
開發者ID:spring-projects,項目名稱:spring-hateoas-examples,代碼行數:26,代碼來源:EmployeeController.java

示例3: newEmployee

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@PostMapping("/employees")
ResponseEntity<?> newEmployee(@RequestBody Employee employee) {

	Employee savedEmployee = repository.save(employee);

	return new Resource<>(savedEmployee,
		linkTo(methodOn(EmployeeController.class).findOne(savedEmployee.getId())).withSelfRel()
			.andAffordance(afford(methodOn(EmployeeController.class).updateEmployee(null, savedEmployee.getId())))
			.andAffordance(afford(methodOn(EmployeeController.class).deleteEmployee(savedEmployee.getId()))),
		linkTo(methodOn(EmployeeController.class).findAll()).withRel("employees")
	).getId()
		.map(Link::getHref)
		.map(href -> {
			try {
				return new URI(href);
			} catch (URISyntaxException e) {
				throw new RuntimeException(e);
			}
		})
		.map(uri -> ResponseEntity.noContent().location(uri).build())
		.orElse(ResponseEntity.badRequest().body("Unable to create " + employee));
}
 
開發者ID:spring-projects,項目名稱:spring-hateoas-examples,代碼行數:23,代碼來源:EmployeeController.java

示例4: addLinks

import org.springframework.hateoas.Resource; //導入依賴的package包/類
/**
 * Define links to add to every {@link Resource}.
 *
 * @param resource
 */
@Override
protected void addLinks(Resource<Employee> resource) {

	/**
	 * Add some custom links to the default ones provided.
	 *
	 * NOTE: To replace default links, don't invoke {@literal super.addLinks()}.
	 */
	super.addLinks(resource);

	resource.getContent().getId()
		.ifPresent(id -> {
			// Add additional links
			resource.add(linkTo(methodOn(ManagerController.class).findManager(id)).withRel("manager"));
			resource.add(linkTo(methodOn(EmployeeController.class).findDetailedEmployee(id)).withRel("detailed"));

			// Maintain a legacy link to support older clients not yet adjusted to the switch from "supervisor" to "manager".
			resource.add(linkTo(methodOn(SupervisorController.class).findOne(id)).withRel("supervisor"));
		});
}
 
開發者ID:spring-projects,項目名稱:spring-hateoas-examples,代碼行數:26,代碼來源:EmployeeResourceAssembler.java

示例5: appendEventResource

import org.springframework.hateoas.Resource; //導入依賴的package包/類
/**
 * Appends an {@link AccountEvent} domain event to the event log of the {@link Account}
 * aggregate with the specified accountId.
 *
 * @param accountId is the unique identifier for the {@link Account}
 * @param event     is the {@link AccountEvent} that attempts to alter the state of the {@link Account}
 * @return a hypermedia resource for the newly appended {@link AccountEvent}
 */
private Resource<AccountEvent> appendEventResource(Long accountId, AccountEvent event) {
    Assert.notNull(event, "Event body must be provided");

    Account account = accountRepository.findOne(accountId);
    Assert.notNull(account, "Account could not be found");

    event.setAccountId(account.getIdentity());
    eventService.apply(event);

    return new Resource<>(event,
            linkTo(AccountController.class)
                    .slash("accounts")
                    .slash(accountId)
                    .slash("events")
                    .slash(event.getEventId())
                    .withSelfRel(),
            linkTo(AccountController.class)
                    .slash("accounts")
                    .slash(accountId)
                    .withRel("account")
    );
}
 
開發者ID:kbastani,項目名稱:service-block-samples,代碼行數:31,代碼來源:AccountController.java

示例6: getAccountResource

import org.springframework.hateoas.Resource; //導入依賴的package包/類
/**
 * Get a hypermedia enriched {@link Account} entity.
 *
 * @param account is the {@link Account} to enrich with hypermedia links
 * @return is a hypermedia enriched resource for the supplied {@link Account} entity
 */
private Resource<Account> getAccountResource(Account account) {
    Assert.notNull(account, "Account must not be null");

    if (!account.hasLink("commands")) {
        // Add command link
        account.add(linkBuilder("getCommands", account.getIdentity()).withRel("commands"));
    }

    if (!account.hasLink("events")) {
        // Add get events link
        account.add(linkBuilder("getAccountEvents", account.getIdentity()).withRel("events"));
    }

    return new Resource<>(account);
}
 
開發者ID:kbastani,項目名稱:service-block-samples,代碼行數:22,代碼來源:AccountController.java

示例7: getCommandsResource

import org.springframework.hateoas.Resource; //導入依賴的package包/類
private ResourceSupport getCommandsResource(Long id) {
    Account account = new Account();
    account.setIdentity(id);

    CommandResources commandResources = new CommandResources();

    // Add activate command link
    commandResources.add(linkTo(AccountController.class)
            .slash("accounts")
            .slash(id)
            .slash("commands")
            .slash("activate")
            .withRel("activate"));

    // Add suspend command link
    commandResources.add(linkTo(AccountController.class)
            .slash("accounts")
            .slash(id)
            .slash("commands")
            .slash("suspend")
            .withRel("suspend"));

    return new Resource<>(commandResources);
}
 
開發者ID:kbastani,項目名稱:service-block-samples,代碼行數:25,代碼來源:AccountController.java

示例8: getProjectResource

import org.springframework.hateoas.Resource; //導入依賴的package包/類
/**
 * Get a hypermedia enriched {@link Project} entity.
 *
 * @param project is the {@link Project} to enrich with hypermedia links
 * @return is a hypermedia enriched resource for the supplied {@link Project} entity
 */
private Resource<Project> getProjectResource(Project project) {
    Assert.notNull(project, "Project must not be null");

    if (!project.hasLink("commands")) {
        // Add command link
        project.add(linkBuilder("getCommands", project.getIdentity()).withRel("commands"));
    }

    if (!project.hasLink("events")) {
        // Add get events link
        project.add(linkBuilder("getProjectEvents", project.getIdentity()).withRel("events"));
    }

    if (!project.hasLink("commits")) {
        // Add get events link
        project.add(linkBuilder("getProjectCommits", project.getIdentity()).withRel("commits"));
    }

    return new Resource<>(project);
}
 
開發者ID:kbastani,項目名稱:service-block-samples,代碼行數:27,代碼來源:ProjectController.java

示例9: getCommandsResource

import org.springframework.hateoas.Resource; //導入依賴的package包/類
private ResourceSupport getCommandsResource(Long id) {
    Project project = new Project();
    project.setIdentity(id);

    CommandResources commandResources = new CommandResources();

    // Add suspend command link
    commandResources.add(linkTo(ProjectController.class)
            .slash("projects")
            .slash(id)
            .slash("commands")
            .slash("commit")
            .withRel("commit"));

    return new Resource<>(commandResources);
}
 
開發者ID:kbastani,項目名稱:service-block-samples,代碼行數:17,代碼來源:ProjectController.java

示例10: process

import org.springframework.hateoas.Resource; //導入依賴的package包/類
public Resource<SubmissionEnvelope> process(Resource<SubmissionEnvelope> resource) {
    SubmissionEnvelope submissionEnvelope = resource.getContent();

    // add subresource links for each type of metadata document in a submission envelope
    resource.add(getAnalysesLink(submissionEnvelope));
    resource.add(getAssaysLink(submissionEnvelope));
    resource.add(getFilesLink(submissionEnvelope));
    resource.add(getProjectsLink(submissionEnvelope));
    resource.add(getProtocolsLink(submissionEnvelope));
    resource.add(getSamplesLink(submissionEnvelope));

    // add subresource links for events that occur in response to state transitions
    submissionEnvelope.allowedStateTransitions().stream()
            .map(submissionState -> getStateTransitionLink(submissionEnvelope, submissionState))
            .filter(Optional::isPresent)
            .map(Optional::get)
            .forEach(resource::add);

    return resource;
}
 
開發者ID:HumanCellAtlas,項目名稱:ingest-core,代碼行數:21,代碼來源:SubmissionEnvelopeResourceProcessor.java

示例11: status

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@Override
public Info status(String releaseName) {
	ParameterizedTypeReference<Resource<Info>> typeReference =
			new ParameterizedTypeReference<Resource<Info>>() {	};
	Map<String, String> uriVariables = new HashMap<String, String>();
	uriVariables.put("releaseName", releaseName);

	ResponseEntity<Resource<Info>> resourceResponseEntity =
			restTemplate.exchange(baseUri + "/release/status/{releaseName}",
					HttpMethod.GET,
					null,
					typeReference,
					uriVariables);
	return resourceResponseEntity.getBody().getContent();
}
 
開發者ID:spring-cloud,項目名稱:spring-cloud-skipper,代碼行數:16,代碼來源:DefaultSkipperClient.java

示例12: manifest

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@Override
public String manifest(String releaseName) {
	ParameterizedTypeReference<Resource<Manifest>> typeReference =
			new ParameterizedTypeReference<Resource<Manifest>>() {	};
	Map<String, String> uriVariables = new HashMap<String, String>();
	uriVariables.put("releaseName", releaseName);
	ResponseEntity<Resource<Manifest>> resourceResponseEntity =
			restTemplate.exchange(baseUri + "/release/manifest/{releaseName}",
					HttpMethod.GET,
					null,
					typeReference,
					uriVariables);
	return resourceResponseEntity.getBody().getContent().getData();
}
 
開發者ID:spring-cloud,項目名稱:spring-cloud-skipper,代碼行數:15,代碼來源:DefaultSkipperClient.java

示例13: install

import org.springframework.hateoas.Resource; //導入依賴的package包/類
public Release install(InstallRequest installRequest) {
	ParameterizedTypeReference<Resource<Release>> typeReference =
			new ParameterizedTypeReference<Resource<Release>>() { };
	String url = String.format("%s/%s/%s", baseUri, "package", "install");

	HttpEntity<InstallRequest> httpEntity = new HttpEntity<>(installRequest);
	ResponseEntity<Resource<Release>> resourceResponseEntity =
			restTemplate.exchange(url, HttpMethod.POST, httpEntity,	typeReference);
	return resourceResponseEntity.getBody().getContent();
}
 
開發者ID:spring-cloud,項目名稱:spring-cloud-skipper,代碼行數:11,代碼來源:DefaultSkipperClient.java

示例14: deleteRepository

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@Override
public void deleteRepository(String name) {
	ParameterizedTypeReference<Resource<Repository>> typeReference = new ParameterizedTypeReference<Resource<Repository>>() {
	};
	Traverson.TraversalBuilder traversalBuilder = this.traverson.follow("repositories", "search", "findByName");
	Map<String, Object> parameters = new HashMap<>();
	parameters.put("name", name);
	Resource<Repository> repositoryResource = traversalBuilder.withTemplateParameters(parameters)
			.toObject(typeReference);
	if (repositoryResource != null) {
		this.restTemplate.delete(repositoryResource.getId().getHref());
	}
	else {
		throw new IllegalStateException("The Repository with the " + name + " doesn't exist.");
	}
}
 
開發者ID:spring-cloud,項目名稱:spring-cloud-skipper,代碼行數:17,代碼來源:DefaultSkipperClient.java

示例15: upload

import org.springframework.hateoas.Resource; //導入依賴的package包/類
@Override
public PackageMetadata upload(UploadRequest uploadRequest) {
	ParameterizedTypeReference<Resource<PackageMetadata>> typeReference =
			new ParameterizedTypeReference<Resource<PackageMetadata>>() { };
	String url = String.format("%s/%s/%s", baseUri, "package", "upload");
	log.debug("Uploading package {}-{} to repository {}.", uploadRequest.getName(), uploadRequest.getVersion(),
			uploadRequest.getRepoName());
	HttpEntity<UploadRequest> httpEntity = new HttpEntity<>(uploadRequest);
	ResponseEntity<Resource<PackageMetadata>> resourceResponseEntity =
			restTemplate.exchange(url, HttpMethod.POST, httpEntity,	typeReference);
	PackageMetadata packageMetadata = resourceResponseEntity.getBody().getContent();
	return packageMetadata;
}
 
開發者ID:spring-cloud,項目名稱:spring-cloud-skipper,代碼行數:14,代碼來源:DefaultSkipperClient.java


注:本文中的org.springframework.hateoas.Resource類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。