类org.springframework.util.IdGenerator源码实例Demo

下面列出了怎么用org.springframework.util.IdGenerator的API类实例代码及写法,或者点击链接到github查看源代码。

public void setImmutable() {
	if (!this.mutable) {
		return;
	}

	if (getId() == null) {
		IdGenerator idGenerator = (MessageHeaderAccessor.this.idGenerator != null ?
				MessageHeaderAccessor.this.idGenerator : MessageHeaders.getIdGenerator());
		UUID id = idGenerator.generateId();
		if (id != MessageHeaders.ID_VALUE_NONE) {
			getRawHeaders().put(ID, id);
		}
	}

	if (getTimestamp() == null) {
		if (MessageHeaderAccessor.this.enableTimestamp) {
			getRawHeaders().put(TIMESTAMP, System.currentTimeMillis());
		}
	}

	this.mutable = false;
}
 
public void setImmutable() {
	if (!this.mutable) {
		return;
	}

	if (getId() == null) {
		IdGenerator idGenerator = (MessageHeaderAccessor.this.idGenerator != null ?
				MessageHeaderAccessor.this.idGenerator : MessageHeaders.getIdGenerator());
		UUID id = idGenerator.generateId();
		if (id != MessageHeaders.ID_VALUE_NONE) {
			getRawHeaders().put(ID, id);
		}
	}

	if (getTimestamp() == null) {
		if (MessageHeaderAccessor.this.enableTimestamp) {
			getRawHeaders().put(TIMESTAMP, System.currentTimeMillis());
		}
	}

	this.mutable = false;
}
 
public void setIdAndTimestamp() {
	if (!isMutable()) {
		return;
	}
	if (getId() == null) {
		IdGenerator idGenerator = (MessageHeaderAccessor.this.idGenerator != null ?
				MessageHeaderAccessor.this.idGenerator : MessageHeaders.getIdGenerator());
		UUID id = idGenerator.generateId();
		if (id != null && id != MessageHeaders.ID_VALUE_NONE) {
			getRawHeaders().put(ID, id);
		}
	}
	if (getTimestamp() == null) {
		if (MessageHeaderAccessor.this.enableTimestamp) {
			getRawHeaders().put(TIMESTAMP, System.currentTimeMillis());
		}
	}
}
 
@Override
public void initHeaders(MessageHeaderAccessor headerAccessor) {
	IdGenerator idGenerator = getIdGenerator();
	if (idGenerator != null) {
		headerAccessor.setIdGenerator(idGenerator);
	}
	headerAccessor.setEnableTimestamp(isEnableTimestamp());
}
 
@Test
public void testBuildMessageWithoutIdAndTimestamp() {
	MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
	headerAccessor.setIdGenerator(new IdGenerator() {
		@Override
		public UUID generateId() {
			return MessageHeaders.ID_VALUE_NONE;
		}
	});
	Message<?> message = MessageBuilder.createMessage("foo", headerAccessor.getMessageHeaders());
	assertNull(message.getHeaders().getId());
	assertNull(message.getHeaders().getTimestamp());
}
 
@Override
public void initHeaders(MessageHeaderAccessor headerAccessor) {
	IdGenerator idGenerator = getIdGenerator();
	if (idGenerator != null) {
		headerAccessor.setIdGenerator(idGenerator);
	}
	headerAccessor.setEnableTimestamp(isEnableTimestamp());
}
 
@Test
public void testBuildMessageWithoutIdAndTimestamp() {
	MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
	headerAccessor.setIdGenerator(new IdGenerator() {
		@Override
		public UUID generateId() {
			return MessageHeaders.ID_VALUE_NONE;
		}
	});
	Message<?> message = MessageBuilder.createMessage("foo", headerAccessor.getMessageHeaders());
	assertNull(message.getHeaders().getId());
	assertNull(message.getHeaders().getTimestamp());
}
 
@Test
public void testBuildMessageWithoutIdAndTimestamp() {
	MessageHeaderAccessor headerAccessor = new MessageHeaderAccessor();
	headerAccessor.setIdGenerator(new IdGenerator() {
		@Override
		public UUID generateId() {
			return MessageHeaders.ID_VALUE_NONE;
		}
	});
	Message<?> message = MessageBuilder.createMessage("foo", headerAccessor.getMessageHeaders());
	assertNull(message.getHeaders().getId());
	assertNull(message.getHeaders().getTimestamp());
}
 
@Test
public void idGeneratorCustom() {
	final UUID id = new UUID(0L, 23L);
	MessageHeaderAccessor accessor = new MessageHeaderAccessor();
	accessor.setIdGenerator(new IdGenerator() {
		@Override
		public UUID generateId() {
			return id;
		}
	});
	assertSame(id, accessor.getMessageHeaders().getId());
}
 
@Test
public void idTimestampWithMutableHeaders() {
	MessageHeaderAccessor accessor = new MessageHeaderAccessor();
	accessor.setIdGenerator(new IdGenerator() {
		@Override
		public UUID generateId() {
			return MessageHeaders.ID_VALUE_NONE;
		}
	});
	accessor.setEnableTimestamp(false);
	accessor.setLeaveMutable(true);
	MessageHeaders headers = accessor.getMessageHeaders();

	assertNull(headers.getId());
	assertNull(headers.getTimestamp());

	final UUID id = new UUID(0L, 23L);
	accessor.setIdGenerator(new IdGenerator() {
		@Override
		public UUID generateId() {
			return id;
		}
	});
	accessor.setEnableTimestamp(true);
	accessor.setImmutable();

	assertSame(id, accessor.getMessageHeaders().getId());
	assertNotNull(headers.getTimestamp());
}
 
源代码11 项目: spring-analysis-note   文件: MessageHeaders.java
protected static IdGenerator getIdGenerator() {
	IdGenerator generator = idGenerator;
	return (generator != null ? generator : defaultIdGenerator);
}
 
/**
 * Return the configured {@code IdGenerator}, if any.
 */
@Nullable
public IdGenerator getIdGenerator() {
	return this.idGenerator;
}
 
源代码13 项目: java-technology-stack   文件: MessageHeaders.java
protected static IdGenerator getIdGenerator() {
	IdGenerator generator = idGenerator;
	return (generator != null ? generator : defaultIdGenerator);
}
 
/**
 * Return the configured {@code IdGenerator}, if any.
 */
@Nullable
public IdGenerator getIdGenerator() {
	return this.idGenerator;
}
 
源代码15 项目: spring4-understanding   文件: MessageHeaders.java
protected static IdGenerator getIdGenerator() {
	return (idGenerator != null ? idGenerator : defaultIdGenerator);
}
 
/**
 * Return the configured {@code IdGenerator}, if any.
 */
public IdGenerator getIdGenerator() {
	return this.idGenerator;
}
 
public CompositeRouteDefinitionLocator(Flux<RouteDefinitionLocator> delegates,
		IdGenerator idGenerator) {
	this.delegates = delegates;
	this.idGenerator = idGenerator;
}
 
/**
 * Configure the IdGenerator strategy to initialize {@code MessageHeaderAccessor}
 * instances with.
 * <p>By default this property is set to {@code null} in which case the default
 * IdGenerator of {@link org.springframework.messaging.MessageHeaders} is used.
 * <p>To have no ids generated at all, see {@link #setDisableIdGeneration()}.
 */
public void setIdGenerator(@Nullable IdGenerator idGenerator) {
	this.idGenerator = idGenerator;
}
 
/**
 * A package-private mechanism to configure the IdGenerator strategy to use.
 * <p>By default this property is not set in which case the default IdGenerator
 * in {@link org.springframework.messaging.MessageHeaders} is used.
 * @see IdTimestampMessageHeaderInitializer
 */
void setIdGenerator(IdGenerator idGenerator) {
	this.idGenerator = idGenerator;
}
 
/**
 * Configure the IdGenerator strategy to initialize {@code MessageHeaderAccessor}
 * instances with.
 * <p>By default this property is set to {@code null} in which case the default
 * IdGenerator of {@link org.springframework.messaging.MessageHeaders} is used.
 * <p>To have no ids generated at all, see {@link #setDisableIdGeneration()}.
 */
public void setIdGenerator(@Nullable IdGenerator idGenerator) {
	this.idGenerator = idGenerator;
}
 
/**
 * A package-private mechanism to configure the IdGenerator strategy to use.
 * <p>By default this property is not set in which case the default IdGenerator
 * in {@link org.springframework.messaging.MessageHeaders} is used.
 * @see IdTimestampMessageHeaderInitializer
 */
void setIdGenerator(IdGenerator idGenerator) {
	this.idGenerator = idGenerator;
}
 
/**
 * Configure the IdGenerator strategy to initialize {@code MessageHeaderAccessor}
 * instances with.
 * <p>By default this property is set to {@code null} in which case the default
 * IdGenerator of {@link org.springframework.messaging.MessageHeaders} is used.
 * <p>To have no id's generated at all, see {@link #setDisableIdGeneration()}.
 */
public void setIdGenerator(IdGenerator idGenerator) {
	this.idGenerator = idGenerator;
}
 
/**
 * A package-private mechanism to configure the IdGenerator strategy to use.
 * <p>By default this property is not set in which case the default IdGenerator
 * in {@link org.springframework.messaging.MessageHeaders} is used.
 * @see IdTimestampMessageHeaderInitializer
 */
void setIdGenerator(IdGenerator idGenerator) {
	this.idGenerator = idGenerator;
}
 
 类所在包
 同包方法